その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

UINibでのnibファイル読み込み実装手順

以前書いた記事:『nibファイルの読み込みパフォーマンスを改善するUINibクラス
これを実際に実装してみました。


※全面的にAppleのサンプルコードを参考にしました。
http://developer.apple.com/library/ios/#samplecode/TableViewUpdates/

1. ビューのインスタンス格納先を宣言

nib読み込み処理を行うクラスで、nibインスタンス格納先となるプロパティを宣言しておきます。

@property (nonatomic, assign) IBOutlet QuoteCell *quoteCell;

2. Interface Builderでアウトレットを接続する

この1,2の手順が肝になります。(従来のloadNibNamed:では必要なかった)

  • 読み込み対象のnibをIBで開き、
  • File's Ownerのクラスに1でプロパティ宣言を書いたクラス(ここではTableViewController)を指定し、
  • ビューとなるnibオブジェクト(ここではQuote Cell)と、1のプロパティ(ここではFile's OwnerのquoteCell)を接続する

3. nibファイルを読み込む

UINib *quoteCellNib = [UINib nibWithNibName:@"QuoteCell" bundle:nil];
[quoteCellNib instantiateWithOwner:self options:nil];
cell = self.quoteCell;
self.quoteCell = nil;


ポイントは2行目。
instantiateWithOwner:options:メソッドの戻り値の受け取り先を指定する必要はありません
1,2の手順を踏むことで、暗黙的にプロパティに読み込んでくれるようになります。

実際の効果

弊社のすれ違い通信アプリ『EncountMe』でもnibファイルの読み込みを上記手順で置き換えてみました。


キャッシュによるパフォーマンス改善効果は・・・体感ではあまりわからず。。