2011年12月14日水曜日

[iOS]CoreDataで検索結果が取得できないバグ

CoreDataを使用したアプリを作成中に

検索結果が取得できないという現象が起きた
発生状況として
検索A>検索B>検索Aとすると結果が取得できない
検索B>検索A>検索Aとすると結果が取得できない
検索A>検索A>検索Aとすると結果が取得できる
検索A>検索C>検索Aとすると結果が取得できる

結果として検索条件を変えることで取得ができるようになった
変更前
NSString *predStr = @"number == '1'";
NSPredicate *pred = [NSPredicate predicateWithFormat: predStr];
変更後
NSString *predStr = @"number == 1";
NSPredicate *pred = [NSPredicate predicateWithFormat: predStr];


シングルクォートを外しただけ
numberは数値方(Int32)なので「そらそうだ」と思ったが
検索の順番を変更すると取得できたりできなかったりするのが謎