0

我有一个来自核心数据提取的数组(catArray)。我正在使用这个数组来填充我的pickerview(categoryPicker)。另外,当视图出现时,我加载了一个注释,这个注释(也来自核心数据)有一个“类别”属性,它与 catArray 的类别之一匹配。

我想做的是,当视图出现时,抓取笔记的类别属性,在我的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 简单笔记 1[14351:a0b] tmpstring:第二类
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:]: Range {2147483647, 1}超过 NSNotFound 的最大索引值 - 1'

所以我知道我正在寻找的字符串是好的,我的数组也不是空的,但我不知道为什么我找不到正确的索引?有什么建议吗?谢谢你。

4

1 回答 1

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
于 2013-11-07T22:23:10.707 回答