objective-c

TableViewCellの再利用時にサイズがおかしくなる

小4時間ほどはまった。 UITableViewCellで、layoutSubviewsをオーバーライドしたのに、 [super layoutSubviews]; を呼んでいなかった。 この場合、セルが再利用された際に正しい高さが設定されない。 実は自分はTableViewの使い方を間違って覚えていたのでは…

InterfaceBuilderでTableViewを作る時にはまったこと

TableViewControllerをInterfaceBuilderでNIBName指定して利用しようとすると、 warning: Unsupported Configuration: Profile Table View Controller view outlet and NIB Name set という警告が出てIBでカスタマイズした箇所が反映されない。 ViewControll…

_cmd

Objective-Cで、メソッドに暗黙的に渡される_cmdは、実行中のメソッドのセレクタが入っている。 これを使えば、今実行しているメソッドのセレクタを取得することができる。

.appファイルの在り処

Pieceable Viewerを試してみた。 Xcode4になって、appファイルの置き場が変わったのでそのメモ。 シミュレーター用のバイナリは ~/Library/Developer/Xcode/DerivedData/[App名と文字列]/Build/Products/Debug-iphonesimulator にあった。

UIViewのviewDidAppearでうまくいかないとき、UINavigationControllerDelegate使うといいかも

viewDidAppear使って、ビューが表示されるたびに何かしようと思ったとき。 何故か、2回呼ばれたり、いまいちうまくいかないときは、UINavigationControllerDelegate使うのを検討してみるといいかも。 UINavigationControllerでもどってきたときにイベントを…

SenTestingKitメモ

Xcodeで実行出来る標準のテストツールキットSenTestingKitのメモ。 - (void) setUp;//最初に実行される - (void) tearDown;//最後に実行される - (void) testSomething;//テストメソッドは、頭にtestを付ける testSomethingの中で、STAssertHogeHogeを使って…

Objective-Cのプライベートメソッドの単体テスト

Objective-Cでは、プライベートメソッドの単体テストはどうやって実装しよう、と一瞬悩んだが、そもそも動的結合でプライベートメソッドなんてなかった。 warnningは出るが、どんなメソッドでもメッセージ投げられる。 (存在していなかったとしても。)

UITableViewの要素を非同期に設定する

このページと、iPhoneDeveloperCenterのLazyTableImagesというサンプルを参考に実装。 ほとんどLazyTableImagesを真似たものだけど、必要な部分だけ取り出してGithubにおいた。 AsyncTableViewSample ざっくりとした方針は、 cellForRowAtIndexPathの中で、 …

セレクタで関数ポインタみたいなことをする

変数に関数をいれておいて、後で呼び出したい時ありますよね。 objective-cでは、セレクタという機能を使います。 -(void)print_contents:(NSString *)contents{ NSLog(@"%@", contents); } SEL method; method=@selector(print_contents:); [self performSe…

XcodeのBuild and Analyze

iPhoneアプリ開発のメモリ管理のエントリーのコメントで,Build and Analyzeという機能を教えていただきました. Xcodeの ビルド=>Build and Analyze で,メモリリーク警告が検出されます. Xcode画面に表示される警告をクリックすると,具体的な内容が矢印…

iPhoneアプリ開発のメモリ管理

昨日はメモリリークと戦っていて,自分が色々勘違いをしていたことに気がついた. retain,autorelease,release難しいよ.. 前提 そもそも,obj-cでは変数は参照であり指しているものはオブジェクトと考える. オブジェクトを生成するたびに,cで言うところ…