コア データ フェッチから取得した配列 (catArray) があります。この配列を使用して、ピッカービュー (categoryPicker) を設定しています。また、ビューが表示されたときにメモをロードしました。このメモ (コア データからも取得) には、catArray のカテゴリの 1 つと一致する「カテゴリ」属性があります。
私がやりたいことは、ビューが表示されたら、メモのカテゴリ属性を取得し、catArray で文字列結果を検索し、インデックスを取得して、ピッカービューの正しい行を選択することです。これが私のコードです:
- (void)viewDidLoad
{
Notes *editNote = (Notes *)[noteArray objectAtIndex:0];
NSString *tmpString = [editNote category];
NSLog(@"tmpstring : %@", tmpString);
NSLog(@"cat array : %@", catArray);
NSInteger indexOfTheObject = [catArray indexOfObject:tmpString];
[categoryPicker selectRow:indexOfTheObject inComponent:0 animated:YES];
}
ログの結果は次のとおりです。
2013-11-07 14:09:25.393 シンプル ノート 1[14351:a0b] tmpstring: カテゴリ 2 2013-11-07 14:09:25.395 シンプル ノート 1[14351:a0b] 猫配列: ( " (エンティティ: カテゴリ; id: 0x89f1770 ; データ: )", " (エンティティ: カテゴリ; id: 0x89d9230 ; データ: )", " (エンティティ: カテゴリ; id: 0x8968420 ; データ: )", " (エンティティ: カテゴリ; id: 0x8968430 ; データ: )", " (エンティティ: カテゴリ; ID: 0x89cdc10 ; データ: )" ) 2013-11-07 14:09:25.404 シンプル ノート 1[14351:a0b] *** キャッチされない例外 'NSRangeException' によりアプリを終了します。理由: '*** -[NSMutableIndexSet addIndexesInRange:]: 範囲 {2147483647, 1} NSNotFound の最大インデックス値を超えています - 1'
だから、探している文字列が大丈夫であることはわかっています。配列も空ではありませんが、正しいインデックスが見つからない理由がわかりません。なにか提案を ?ありがとうございました。