2012-01-27
NSArrayのindexOfObjectの戻り値とNSNotFoundについて
最近、Objective-cについて勉強し始めました。
参考にさせていただいてるのはコチラ!
Cocoaの素、Objective-Cを知ろう − @IT
分かりやすくて、とても勉強になります!ありがとうございます!!
今のところ、(4)まで進んだのですが、
サンプルプログラムを動かしてみるとWarningが出てくる。
バージョンも変わってるだろうし、仕方がない。
具体的には、リンク先の下記の部分。
配列とループ処理を理解しよう - @IT
//(4)ある要素のインデックスを取得
int objectIndex = [array indexOfObject:@"pqr"];
if (objectIndex == NSNotFound) {
NSLog(@"'pqr' is not found.\n");
}
出力されるWarningはこんな感じ。
$ gcc -o main main.m -framework Foundation
main.m: In function ‘main’:
main.m:20: warning: comparison is always false due to limited range of data type
調べてみたら「比較が常にfalseになってるよ」的なことだということで、
実行ファイルを実行してみると、案の定「NSLog(@"'pqr' is not found.\n");」が出てない。
ググると似たような人発見!
NSNotFoundにはまった。 - メソッド屋の日記
なるほどー!
難しいことはさておきw、
NSNotFoundの値が変わっちゃってるっていうことね。
で、どうすりゃいいんだ、っていうことでさらに調べたところ、
リファレンスによると、indexOfObjectの戻り値はNSUIntegerなので、以下のように修正。
// int objectIndex = [array indexOfObject:@"pqr"]; NSUInteger objectIndex = [array indexOfObject:@"pqr"];
無事、Warningも出なくなり、
「'pqr' is not found.」も出力されるようになりましたとさ。
めでたしめでたし。
- 21 http://search.yahoo.co.jp/search?p=h8マイコンとは&rs=1&tid=top_ga1_sa_121&ei=UTF-8&aq=0&fr=top_ga1_sa_121
- 16 http://www.google.co.jp/url?sa=t&rct=j&q=アセンブラ mov.b #1,&source=web&cd=1&ved=0CCYQFjAA&url=http://d.hatena.ne.jp/ijiyakelife/20110607/1307479775&ei=7kUmT7XpNcrnmAXezbWuDA&usg=AFQjCNF1PjSbE2
- 14 http://www.google.co.jp/url?sa=t&rct=j&q=h8マイコン 訓練&source=web&cd=2&ved=0CF4QFjAB&url=http://d.hatena.ne.jp/ijiyakelife/20110522/1306094246&ei=aKAnT4TmCaLamAXhpY3BAw&usg=AFQjCNEmFExC4lXqLaW2tXnX
- 11 http://www.google.co.jp/url?sa=t&rct=j&q=h8 アセンブラ&source=web&cd=6&ved=0CFsQFjAF&url=http://d.hatena.ne.jp/ijiyakelife/20110522/1306094246&ei=KksmT7LwFLDDmQXbrYiuDA&usg=AFQjCNEmFExC4lXqLaW2tXnXnHsl6cheB
- 11 http://www.google.co.jp/url?sa=t&rct=j&q=nsnotfound&source=web&cd=17&ved=0CFkQFjAGOAo&url=http://d.hatena.ne.jp/ijiyakelife/20120127/1327621381&ei=Ox4kT8fSNIqZiQf904HvBA&usg=AFQjCNFIPpb4nu_CseHpjGCFObe4JD8A6A&sig2=KQS4wNF9sKyWCsfL3SDV7g
- 9 http://www.google.co.jp/url?sa=t&rct=j&q=マイコン 割込 rte&source=web&cd=1&ved=0CCYQFjAA&url=http://d.hatena.ne.jp/ijiyakelife/20110607/1307479775&ei=v2wuT-eCPZHGmQWpwJneDw&usg=AFQjCNF1PjSbE2Hf0G62
- 9 http://www.google.co.jp/url?sa=t&rct=j&q=職業訓練 はんだ&source=web&cd=1&ved=0CC4QFjAA&url=http://d.hatena.ne.jp/ijiyakelife/20110508/1304880792&ei=udMnT82iEITjmAXLv4XTAw&usg=AFQjCNGxoms
- 7 http://search.yahoo.co.jp/search?p=マイコン ポート設定 DDR&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=&oq=
- 7 http://www.google.co.jp/url?sa=t&rct=j&q=オペアンプ+加算回路&source=web&cd=20&ved=0CIwBEBYwCTgK&url=http://d.hatena.ne.jp/ijiyakelife/20110323/1300882788&ei=M7oiT-z5K8WsrAeLkrDKCA&
- 7 http://www.google.co.jp/url?sa=t&rct=j&q=h8+アセンブラ&source=web&cd=18&ved=0CFUQFjAHOAo&url=http://d.hatena.ne.jp/ijiyakelife/20110520/1305875576&ei=BbonT4ibCcjRmAXNg5y7Aw&usg=AFQjCNHXF2_8sHQ3I7PbWojhndZQLhH