我有一个数组(catArray),来自核心数据获取。我正在使用此数组来填充我的pickerview(categoryPicker)。此外,我在视图出现时加载了一个注释,此注释(来自核心数据)也有一个“category”属性,它与catArray的一个类别匹配。
我想要做的是,当视图出现时,抓取音符的category属性,在catArray中搜索字符串结果,获取索引,并为pickerview选择正确的行。这是我的代码:
- (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 Simple Notes 1[14351:a0b] tmpstring : category two 2013-11-07 14:09:25.395 Simple Notes 1[14351:a0b] cat array : ( " (entity: Categories; id: 0x89f1770 ; data: )", " (entity: Categories; id: 0x89d9230 ; data: )", " (entity: Categories; id: 0x8968420 ; data: )", " (entity: Categories; id: 0x8968430 ; data: )", " (entity: Categories; id: 0x89cdc10 ; data: )" ) 2013-11-07 14:09:25.404 Simple Notes 1[14351:a0b] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSMutableIndexSet addIndexesInRange:]: Range {2147483647, 1} exceeds maximum index value of NSNotFound - 1'
所以我知道我正在寻找的字符串是好的,我的数组也不是空的,但我无法弄清楚为什么我找不到合适的索引?有什么建议吗?谢谢。
答案 0 :(得分:0)
您的catArray是一个NSManagedObjects
数组,而tmpString是NSString
。
此:
NSInteger indexOfTheObject = [catArray indexOfObject:tmpString];
基本上是这样的:
NSInteger indexOfTheObject = [NSManagedObjects indexOfObject:NSString];
您需要搜索NSManagedObjects
(catArray
)数组并将属性与tmpString
进行比较以查找索引。
伪代码:
for each Categories in catArray
if Categories.name == tmpString
save the index