【问题标题】:How to add a value to an NSOrderedSet如何向 NSOrderedSet 添加值
【发布时间】:2014-12-17 16:26:33
【问题描述】:

我正在使用 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,
)}

【问题讨论】:

    标签: ios objective-c nsarray nsorderedset


    【解决方案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];
    

    【讨论】:

    • 太好了,正是我需要的,非常感谢
    猜你喜欢
    • 2012-08-31
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    相关资源
    最近更新 更多