从数组中检索索引,使用该索引在pickerview中选择一行
Posted
技术标签:
【中文标题】从数组中检索索引,使用该索引在pickerview中选择一行【英文标题】:Retrieve an index from an array, use this index to select a row in pickerview 【发布时间】:2013-11-07 14:12:22 【问题描述】:我有一个来自核心数据提取的数组 (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'所以我知道我正在寻找的字符串没问题,我的数组也不是空的,但我不知道为什么我找不到正确的索引?有什么建议吗?谢谢。
【问题讨论】:
【参考方案1】:您的 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
【讨论】:
以上是关于从数组中检索索引,使用该索引在pickerview中选择一行的主要内容,如果未能解决你的问题,请参考以下文章
使用swiftyjson从索引对象数组ios中检索json的标题
我可以像在 for 循环中从数组中索引项目一样从元组中检索项目吗?