xcode在数组中重复

时间:2013-01-21 08:35:19

标签: iphone xcode arrays nsarray

我有一个带有一些“城镇”的NSArray(从json数据库获取这些城镇),但是阵列中有一些城镇有2到3次,我必须删除这些城镇。

我该如何解决这个问题?在x-code中使用for-loop或spezific函数?

请帮忙!

5 个答案:

答案 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"]];