-4

我有一个 NSArray,里面有一些“城镇”(从 json 数据库中获取这些城镇),但是数组中有一些城镇 2 或 3 次,我必须删除这些城镇。

我怎么解决这个问题?在 x 代码中使用 for 循环或特定函数?

请帮忙!

4

5 回答 5

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];
于 2013-01-21T08:38:21.310 回答
0

您可以将数组转换为只能保存唯一值的 NSSet。

NSArray *array = ... // Your array of "towns"
NSSet *set = [[NSSet alloc] initWithArray:array];
NSArray *unique = [set allObjects];

如果您使用的是自定义数据类,请确保实现isEqual:

于 2013-01-21T08:38:03.257 回答
0

这是执行此操作的程序,

NSArray *to = // your towns;
NSSet *set = [[NSSet alloc]initWithArray:towns];
arryl = [set allObjects];
于 2013-01-21T08:38:54.957 回答
0

一条线解决方案,您需要为非ARC项目添加自动发布

NSArray *array = // your array
NSArray filteredArray = [[[NSOrderedSet alloc] initWithArray:array] array];
于 2013-01-21T08:38:58.630 回答
0

您可以valueForKey为此使用方法。这意味着您可以创建一个数组的 NSSet,然后根据键获得价值

NSSet *uniqueStates = [NSSet setWithArray:[myArrayOfCustomObjects valueForKey:@"state"]];
于 2013-01-21T08:40:43.990 回答