我有一个应用程序正在从plist中检索其信息。 plist
是带有键(作者,猫,内容)的Dictionaries
的数组。 现在我想在表格中显示类别。 所以我需要所有独特的类别条目以排序的方式。消除数组中的重复条目并对结果进行排序
我已成功实施以下方法,但如果这是“正确”解决方案,我很感兴趣。
- 去通过的plist阵列中,并使新
NSMutableArray
与字典 - 的所有类别 条目把这个
NSMutableArray
成NSSet
获得独特的元素 - 把这个
NSSet
到NSArray
有可能性排序它。 - 返回与分类
NSArray
我觉得不是发起NSMutableArray
,这是这样做的正确方法。 有什么建议可以做得更好?
非常感谢!
//InhaltefromWEb is a NSMutableArray
-(NSArray*) getCategories {
NSMutableArray* categorieTemp = [[NSMutableArray alloc] init];
unsigned count = [InhalteFromWeb count];
while (count--) {
NSString *tempString;
tempString=[[InhalteFromWeb objectAtIndex:count] objectForKey:CATEGORY];
NSLog(@"tempString %@", tempString);
[categorieTemp addObject:tempString];
}
NSSet *uniqueElements = [NSSet setWithArray:categorieTemp];
NSLog(@"categories from engine %@", categorieTemp);
NSArray* tempAr = [[[NSArray alloc] initWithArray:[uniqueElements allObjects]]sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
return [NSMutableArray arrayWithArray:tempAr];
}
是啊,没关系。您可以在while循环中使用NSMutableSet而不是类别temp,并直接将字符串添加到它。 – carbonbasednerd 2011-12-17 16:21:00
好提示:-)谢谢。我仍然失去了所有这些不同类型和可能性来存储数据,然后重新转换。 :-)但一步一步,它会更有意义...... – Ssernengreiferin 2011-12-17 16:45:06
如果你还没有,你还应该阅读核心数据作为数据存储解决方案。 – carbonbasednerd 2011-12-17 16:53:18