Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Objective-Cの
いろいろな反復処理
2014.3.12 @iOS_LT
•小川航佑 Kosuke Ogawa
•@koogawa
•趣味と仕事の両方でiOSアプリを開発
コレクション
(NSArray, NSDictionary, NSSet)
の反復処理にはいろいろある
例えば
forループ
Array
Array
object = a
object = b
object = c
Dictionary
Dictionary
key = key2, value = val2
key = key1, value = val1
key = key3, value = val3
•インデックスにアクセスしやすい
•複雑になりがち
•一時変数を作る必要がある(Dictionary
の場合)
高速反復処理
Array
Array
object = a
object = b
object = c
Array
object = a
object = b
object = c
object = c
object = b
object = a
Dictionary
Dictionary
key = key2, value = val2
key = key1, value = val1
key = key3, value = val3
•シンプルに書ける
•インデックスにアクセスできない
(Array)
•値も必要な場合は余分なステップが必
要になる(Dictionary)
ブロックベースの
反復処理
Array
Array
object = a, idx = 0
object = b, idx = 1
object = c, idx = 2
Array
Array
object = a, idx = 0
Dictionary
Dictionary
key = key2, object = val2
key = key1, object = val1
key = key3, object = val3
NSEnumerationReverse
NSEnumerationReverse
object = c, idx = 2
object = b, idx = 1
object = a, idx = 0
NSEnumerationReverse
NSEnumerationReverse
key = key2, object = val2
key = key1, object = val1
key = key3, object = val3
•インデックスにアクセスできる(Array)
•キーと値が一緒に手に入る
(Dictionary)
•字数はやや増える
• 項目48「forループで
はなく、ブロックの反
復処理を使う」を参考
• ¥3,200+税
• おすすめ
Effective
Objective-c 2.0
ありがとう
ございました
Upcoming SlideShare
Loading in …5
×

Objective-Cのいろいろな反復処理

5,715 views

Published on

2014.3.12 iOS_LT

Published in: Technology
  • Be the first to comment

Objective-Cのいろいろな反復処理

  1. 1. Objective-Cの いろいろな反復処理 2014.3.12 @iOS_LT
  2. 2. •小川航佑 Kosuke Ogawa •@koogawa •趣味と仕事の両方でiOSアプリを開発
  3. 3. コレクション (NSArray, NSDictionary, NSSet) の反復処理にはいろいろある
  4. 4. 例えば
  5. 5. forループ
  6. 6. Array
  7. 7. Array object = a object = b object = c
  8. 8. Dictionary
  9. 9. Dictionary key = key2, value = val2 key = key1, value = val1 key = key3, value = val3
  10. 10. •インデックスにアクセスしやすい •複雑になりがち •一時変数を作る必要がある(Dictionary の場合)
  11. 11. 高速反復処理
  12. 12. Array
  13. 13. Array object = a object = b object = c
  14. 14. Array object = a object = b object = c object = c object = b object = a
  15. 15. Dictionary
  16. 16. Dictionary key = key2, value = val2 key = key1, value = val1 key = key3, value = val3
  17. 17. •シンプルに書ける •インデックスにアクセスできない (Array) •値も必要な場合は余分なステップが必 要になる(Dictionary)
  18. 18. ブロックベースの 反復処理
  19. 19. Array
  20. 20. Array object = a, idx = 0 object = b, idx = 1 object = c, idx = 2
  21. 21. Array
  22. 22. Array object = a, idx = 0
  23. 23. Dictionary
  24. 24. Dictionary key = key2, object = val2 key = key1, object = val1 key = key3, object = val3
  25. 25. NSEnumerationReverse
  26. 26. NSEnumerationReverse object = c, idx = 2 object = b, idx = 1 object = a, idx = 0
  27. 27. NSEnumerationReverse
  28. 28. NSEnumerationReverse key = key2, object = val2 key = key1, object = val1 key = key3, object = val3
  29. 29. •インデックスにアクセスできる(Array) •キーと値が一緒に手に入る (Dictionary) •字数はやや増える
  30. 30. • 項目48「forループで はなく、ブロックの反 復処理を使う」を参考 • ¥3,200+税 • おすすめ Effective Objective-c 2.0
  31. 31. ありがとう ございました

×