如何向NSOrderedSet添加值

时间:2014-12-17 16:26:34

标签: ios objective-c nsarray nsorderedset

我正在使用NSOrderedSet将数据存储在Json服务器中并以这种方式执行,因为数据到达时重复,我必须过滤它们以保留一个值。现在我需要在NSOrderedSet的开头添加一个值。我知道如何为NSArray添加值,但不知道如何将数据从NSOrderedSet传递给NSArray。

这是我从服务器获得的一个例子:

{(
    AMAZONAS,
    AMAZONAS,
    ANTIOQUIA,
    ANTIOQUIA,
    ARAUCA,
    "AREA EN LITIGIO",
    "AREA EN LITIGIO",
    ATLANTICO,
)}

使用NSOrderedSet对数据进行排序以避免重复,如下所示:

    deptoArray=[NSOrderedSet orderedSetWithArray:[_data valueForKey:@"Nombre"]];

{(
    AMAZONAS,
    ANTIOQUIA,
    ARAUCA,
    "AREA EN LITIGIO",
    ATLANTICO,
)}

但现在我需要在开头添加一个数据,如下所示:

{(
    Seleccione,
    AMAZONAS,
    ANTIOQUIA,
    ARAUCA,
    "AREA EN LITIGIO",
    ATLANTICO,
)}

1 个答案:

答案 0 :(得分:1)

标准基础集合类都是不可变的。所以你需要创建一个可变版本的集合。将其创建为可变有序集

NSMutableOrderedSet *deptoArray = nil;
// ...
deptoArray= [NSMutableOrderedSet 
                 orderedSetWithArray:[_data valueForKey:@"Nombre"]];
[deptoArray insertObject:@"Seleccione" atIndex:0];

或创建有序集的可变副本(如果使用ARC,则跳过autorelease

NSMutableOrderedSet *mutableDeptoArray = 
            [[deptoArray mutableCopy] autorelease];
[mutableDeptoArray insertObject:@"Seleccione" atIndex:0];