いまさら NSArray

1,056 views

Published on

Cocoa 勉強会関西での発表資料です。

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,056
On SlideShare
0
From Embeds
0
Number of Embeds
29
Actions
Shares
0
Downloads
3
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

いまさら NSArray

  1. 1. いまさら NSArray かねうちてつや Cocoa勉強会関西 2013.12.14
  2. 2. NSArray • Foundation のコレクションクラスのひとつ • インデックス付きでオブジェクトを格納 • クラスクラスタを構成 • 関連: NSMutableArray, NSSet
  3. 3. クラスクラスタ • NSArray そのものは抽象クラス • イニシャライザが具象サブクラスのインスタンスを生成 • 具象サブクラスは非公開 • サブクラス化できる設計になっている
  4. 4. NSArray のサブクラス • count と objectAtIndex: をオーバーライドすれば完成 • 好きなデータに NSArray インタフェースでアクセス • 他のオブジェクト、ファイルシステム、データベース… • 必ずしもデータをメモリに置かなくてもよい
  5. 5. NSArray ビュー • もともとは NSArray になっていないデータに NSArray としてアクセスできるようにする • 元のデータが変更されるとビューにも反映される • NSArray は多くのフレームワークで充実したサポートが あるので利用用途が広い • NSSet ビューとかも考えられる
  6. 6. NSArray ビューの例 • 別の NSArray の逆順に並んでいる NSArray ビュー • 2 つの NSArray を連結した NSArray ビュー • 文字列の1文字ずつを要素として持つ NSArray ビュー
  7. 7. Demo
  8. 8. NSArray のプロパティ • あるオブジェクトが持つコレクションへのアクセスを外部に提 供したい • NSMutableArray を返してしまうと、オブジェクト外から変 更される可能性があってヤダ • • • そもそも NSArray じゃないんだけど コレクションの中身を lazy に初期化したい immutable な NSArray ビューを返しましょう!
  9. 9. KVC と NSArray • サブクラスを作らなくても NSArray ビューを返せる • • • - (NSUInteger)countOfElements - (id)objectInElementsAtIndex:(NSUInteger)index; [obj valueForKey:@“elements”]
  10. 10. Demo
  11. 11. まとめ • NSArray のサブクラスは簡単に作れる • NSArray ビューはいろいろ用途があって楽しい • KVC でサブクラスなしで NSArray ビューを公開できる • KVC で NSSet や mutable コレクションも返せる
  12. 12. 参考 • NSArray Class Reference • Key-Value Coding Programming Guide • Key-Value Coding Accessor Methods

×