SlideShare a Scribd company logo
1 of 31
Download to read offline
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
ありがとう
ございました

More Related Content

What's hot

Object-Funcational Analysis and design
Object-Funcational Analysis and designObject-Funcational Analysis and design
Object-Funcational Analysis and design
Tomoharu ASAMI
 
アルゴリズム+データ構造勉強会(9)
アルゴリズム+データ構造勉強会(9)アルゴリズム+データ構造勉強会(9)
アルゴリズム+データ構造勉強会(9)
noldor
 
Java使いにとっての関数
Java使いにとっての関数Java使いにとっての関数
Java使いにとっての関数
amkt922
 

What's hot (9)

LINQ概要
LINQ概要LINQ概要
LINQ概要
 
Object-Funcational Analysis and design
Object-Funcational Analysis and designObject-Funcational Analysis and design
Object-Funcational Analysis and design
 
LINQ の概要とかもろもろ
LINQ の概要とかもろもろLINQ の概要とかもろもろ
LINQ の概要とかもろもろ
 
アルゴリズム+データ構造勉強会(9)
アルゴリズム+データ構造勉強会(9)アルゴリズム+データ構造勉強会(9)
アルゴリズム+データ構造勉強会(9)
 
Vim scriptとJavaとHaskell
Vim scriptとJavaとHaskellVim scriptとJavaとHaskell
Vim scriptとJavaとHaskell
 
Object-Functional Analysis and Design and Programming温泉
Object-Functional Analysis and Design and Programming温泉Object-Functional Analysis and Design and Programming温泉
Object-Functional Analysis and Design and Programming温泉
 
2016年第二回プレ卒研in山口研
2016年第二回プレ卒研in山口研2016年第二回プレ卒研in山口研
2016年第二回プレ卒研in山口研
 
Java使いにとっての関数
Java使いにとっての関数Java使いにとっての関数
Java使いにとっての関数
 
Let's split text by awk command
Let's split text by awk commandLet's split text by awk command
Let's split text by awk command
 

Similar to Objective-Cのいろいろな反復処理 (6)

Javaプログラミング入門【第7回】
Javaプログラミング入門【第7回】Javaプログラミング入門【第7回】
Javaプログラミング入門【第7回】
 
Scala勉強会_2014_11_18
Scala勉強会_2014_11_18Scala勉強会_2014_11_18
Scala勉強会_2014_11_18
 
オブジェクト指向開発におけるObject-Functional Programming
オブジェクト指向開発におけるObject-Functional Programmingオブジェクト指向開発におけるObject-Functional Programming
オブジェクト指向開発におけるObject-Functional Programming
 
JavaScriptクイックスタート
JavaScriptクイックスタートJavaScriptクイックスタート
JavaScriptクイックスタート
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
 
CoreDataでのsubqueryの使い方
CoreDataでのsubqueryの使い方CoreDataでのsubqueryの使い方
CoreDataでのsubqueryの使い方
 

More from Kosuke Ogawa

Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)
Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)
Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)
Kosuke Ogawa
 
自作アプリを Apple Watch対応した話 〜FastCheckin編〜
自作アプリを Apple Watch対応した話 〜FastCheckin編〜自作アプリを Apple Watch対応した話 〜FastCheckin編〜
自作アプリを Apple Watch対応した話 〜FastCheckin編〜
Kosuke Ogawa
 
iOS 8 App Extension「Action」でアプリ間連携してみる
iOS 8 App Extension「Action」でアプリ間連携してみるiOS 8 App Extension「Action」でアプリ間連携してみる
iOS 8 App Extension「Action」でアプリ間連携してみる
Kosuke Ogawa
 
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
Kosuke Ogawa
 
初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜
初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜
初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜
Kosuke Ogawa
 
iOSで笑顔を認識する
iOSで笑顔を認識するiOSで笑顔を認識する
iOSで笑顔を認識する
Kosuke Ogawa
 
iOSで光を感知する
iOSで光を感知するiOSで光を感知する
iOSで光を感知する
Kosuke Ogawa
 

More from Kosuke Ogawa (20)

iOS対応のCIサービス「Bitrise」を使ってみた
iOS対応のCIサービス「Bitrise」を使ってみたiOS対応のCIサービス「Bitrise」を使ってみた
iOS対応のCIサービス「Bitrise」を使ってみた
 
Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)
Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)
Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)
 
コードを書かずにUINavigationBarを スワイプで表示/非表示させる
コードを書かずにUINavigationBarを スワイプで表示/非表示させるコードを書かずにUINavigationBarを スワイプで表示/非表示させる
コードを書かずにUINavigationBarを スワイプで表示/非表示させる
 
自作アプリを watchOS 2 対応した話 〜FastCheckin編〜
自作アプリを watchOS 2 対応した話 〜FastCheckin編〜自作アプリを watchOS 2 対応した話 〜FastCheckin編〜
自作アプリを watchOS 2 対応した話 〜FastCheckin編〜
 
ビールのはなし
ビールのはなしビールのはなし
ビールのはなし
 
What's New in Core Location - WWDC 2015
What's New in Core Location - WWDC 2015What's New in Core Location - WWDC 2015
What's New in Core Location - WWDC 2015
 
自作アプリを Apple Watch対応した話 〜FastCheckin編〜
自作アプリを Apple Watch対応した話 〜FastCheckin編〜自作アプリを Apple Watch対応した話 〜FastCheckin編〜
自作アプリを Apple Watch対応した話 〜FastCheckin編〜
 
AppStoreのアプリ動画App Previewsの作り方
AppStoreのアプリ動画App Previewsの作り方AppStoreのアプリ動画App Previewsの作り方
AppStoreのアプリ動画App Previewsの作り方
 
iOS 8 App Extension「Action」でアプリ間連携してみる
iOS 8 App Extension「Action」でアプリ間連携してみるiOS 8 App Extension「Action」でアプリ間連携してみる
iOS 8 App Extension「Action」でアプリ間連携してみる
 
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
 
facebook/popを使ってみた
facebook/popを使ってみたfacebook/popを使ってみた
facebook/popを使ってみた
 
勉強会に行こう
勉強会に行こう勉強会に行こう
勉強会に行こう
 
Map Kitでローカル検索を試してみた
Map Kitでローカル検索を試してみたMap Kitでローカル検索を試してみた
Map Kitでローカル検索を試してみた
 
UIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみた
UIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみたUIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみた
UIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみた
 
iOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けてiOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けて
 
初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜
初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜
初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜
 
App Store 申請Tips
App Store 申請TipsApp Store 申請Tips
App Store 申請Tips
 
iOSで笑顔を認識する
iOSで笑顔を認識するiOSで笑顔を認識する
iOSで笑顔を認識する
 
Dynamic Type の基本的なお話
Dynamic Type の基本的なお話Dynamic Type の基本的なお話
Dynamic Type の基本的なお話
 
iOSで光を感知する
iOSで光を感知するiOSで光を感知する
iOSで光を感知する
 

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