我有一个带有一些“城镇”的NSArray(从json数据库获取这些城镇),但是阵列中有一些城镇有2到3次,我必须删除这些城镇。
我该如何解决这个问题?在x-code中使用for-loop或spezific函数?
请帮忙!
答案 0 :(得分:1)
你可以遍历你所有的城镇,只有在它内部不存在的情况下才将其添加到“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];
答案 1 :(得分:0)
您可以将数组转换为仅包含唯一值的NSSet。
NSArray *array = ... // Your array of "towns"
NSSet *set = [[NSSet alloc] initWithArray:array];
NSArray *unique = [set allObjects];
如果您正在使用自定义数据类,请确保实施isEqual:
答案 2 :(得分:0)
这是执行此操作的程序,
NSArray *to = // your towns;
NSSet *set = [[NSSet alloc]initWithArray:towns];
arryl = [set allObjects];
答案 3 :(得分:0)
一行解决方案,您需要为非ARC项目添加自动释放
NSArray *array = // your array
NSArray filteredArray = [[[NSOrderedSet alloc] initWithArray:array] array];
答案 4 :(得分:0)
您可以使用valueForKey
方法。
这意味着你可以创建一个阵列的NSSet&然后按键,你可以获得价值
NSSet *uniqueStates = [NSSet setWithArray:[myArrayOfCustomObjects valueForKey:@"state"]];