21
InterfaceBuilderつづき かいた人 Hiroyuki-Fujikawa.(cqa02303) 12114日日曜日

Ib資料20090222

Embed Size (px)

DESCRIPTION

非常に古い資料です。 NSCoderのサンプルが入っているので、UIState Preservationで参考になるかもしれないから今更あげておく。

Citation preview

Page 1: Ib資料20090222

InterfaceBuilderつづきかいた人

Hiroyuki-Fujikawa.(cqa02303)

12年11月4日日曜日

Page 2: Ib資料20090222

今日のお題

まとめる

あける

ピコる

12年11月4日日曜日

Page 3: Ib資料20090222

今日のお題

まとめる … 今回の動機。

あける

ピコる

12年11月4日日曜日

Page 4: Ib資料20090222

まとめる

InterfaceBuilderの定義ファイル(xib)って沢山出来ちゃってウザイよね?

12年11月4日日曜日

Page 5: Ib資料20090222

例えばUITableView

UITableViewとUITableViewCellの2ファイル

Cellは複製が必要(20個程度~)

ファイルを分けると管理が面倒

12年11月4日日曜日

Page 6: Ib資料20090222

複製のアプローチ

案1)xibの展開方法を模倣してキャッシュ

案2)展開済みのオブジェクトをコピー

12年11月4日日曜日

Page 7: Ib資料20090222

xib⇒UIView

loadNibNamed:owner:options:

詳細不明だけど、オブジェクトが得られる

呼び出す都度、ファイル読み込み?

12年11月4日日曜日

Page 8: Ib資料20090222

今日のお題

まとめる

あける … ファイルの構造を確認する

ピコる

12年11月4日日曜日

Page 9: Ib資料20090222

あける

IBが出力するものについて調べてみる

まずはProjectにあるxibと、Bundleの何か

12年11月4日日曜日

Page 10: Ib資料20090222

xibの中身

xmlファイル

source的なファイル

buildしたらnibになる

12年11月4日日曜日

Page 11: Ib資料20090222

nibの中身

NSPropertyListSerializationでNSDictionary化

辞書の中身はxibと同じ様なツリー構造

12年11月4日日曜日

Page 12: Ib資料20090222

nibを読む

NSDictionaryを展開してみた

12年11月4日日曜日

Page 13: Ib資料20090222

nibを読む

NSCFType大杉

順序に意味がある

12年11月4日日曜日

Page 14: Ib資料20090222

あきらめた

12年11月4日日曜日

Page 15: Ib資料20090222

今日のお題

まとめる

あける

ピコる … コピーして使うことにします

12年11月4日日曜日

Page 16: Ib資料20090222

ピコる

ツリー構造のNSObjectを複写できるよ。

[NSKeyedArchiver archivedDataWithRootObject:];

[NSKeyedUnarchiver unarchivedObjectWithData:];

UIKitのviewツリーなら大体OK

12年11月4日日曜日

Page 17: Ib資料20090222

ピコってみた

なんかおかしい

カスタムClassのIBOutletがnilのまま

NSCoding protocolを実装する必要があるよ- (id)initWithCoder:(NSCoder *)decoder- (void)encodeWithCoder:(NSCoder *)encoder

12年11月4日日曜日

Page 18: Ib資料20090222

NSCodingProtocol実装

複写してnib展開時と同じ状態を作る

IBOutletの保存だけ行うことに

12年11月4日日曜日

Page 19: Ib資料20090222

NSCodingProtocol利用

cell生成行だけ変更元データだけキャッシュしてます。

12年11月4日日曜日

Page 20: Ib資料20090222

NSCodingProtocol利用

元データはviewDidLoadで作成

awakeFromNibの中ではコピー元が未だ無い

12年11月4日日曜日

Page 21: Ib資料20090222

結果

xibファイルを1つにまとめられる

コード量が(けっこう)増える

速度差はほとんど無し

...あれ?

12年11月4日日曜日