我有一个 NSArray,里面有一些“城镇”(从 json 数据库中获取这些城镇),但是数组中有一些城镇 2 或 3 次,我必须删除这些城镇。
我怎么解决这个问题?在 x 代码中使用 for 循环或特定函数?
请帮忙!
您可以遍历所有城镇,如果其中不存在,则仅将其添加到“uniqueItems”
//Towns is an array of strings in this case
NSMutableArray *uniqueItems = [NSMutableArray array];
for (NSString *town in towns)
if (![uniqueItems containsObject:town])
[uniqueItems addObject:town];
您可以将数组转换为只能保存唯一值的 NSSet。
NSArray *array = ... // Your array of "towns"
NSSet *set = [[NSSet alloc] initWithArray:array];
NSArray *unique = [set allObjects];
如果您使用的是自定义数据类,请确保实现isEqual:
这是执行此操作的程序,
NSArray *to = // your towns;
NSSet *set = [[NSSet alloc]initWithArray:towns];
arryl = [set allObjects];
一条线解决方案,您需要为非ARC项目添加自动发布
NSArray *array = // your array
NSArray filteredArray = [[[NSOrderedSet alloc] initWithArray:array] array];
您可以valueForKey
为此使用方法。这意味着您可以创建一个数组的 NSSet,然后根据键获得价值
NSSet *uniqueStates = [NSSet setWithArray:[myArrayOfCustomObjects valueForKey:@"state"]];