如何在目标c中进行数组元素的格式转换

时间:2015-02-20 08:46:18

标签: ios objective-c arrays

我从服务器的json创建了一个数组,其NSLOG显示了这个 -

(
        (
        "/api/v1/user/75/"
    ),
        (
        "/api/v1/user/86/"
    ),
        (
        "/api/v1/user/65/"
    ),
        (
        "/api/v1/user/70/"
    ),
        (
        "/api/v1/user/2/"
    )
)

我怎么能转换数组的元素,以便我得到修改后的数组的这个NSLOG ..

(
    "/api/v1/user/75/",
    "/api/v1/user/86/",
    "/api/v1/user/65/",
    "/api/v1/user/70/",
    "/api/v1/user/2/"
)
如果你想知道为什么我需要它,因为在下一阶段我无法使用nspredicate使用这个数组元素过滤另一个数组。后面的格式没有给出错误

1 个答案:

答案 0 :(得分:2)

根据您的描述,您有一个NSArray,它包含NSArray对象(NSStrings所在的对象)。要将其转换为NSStrings的NSArray,您必须将其展平。以下是可用于展平的示例方法:

- (NSArray*)flatten:(NSArray*)array {
    NSMutableArray* flattenedArray = [NSMutableArray arrayWithCapacity:[array count]];

    for (id element in array) {
        if ([element isKindOfClass:[NSArray class]]) {
            [flattenedArray addObjectsFromArray:[self flatten:element]];
        }
        else {
            [flattenedArray addObject:element];
        }
    }

    return flattenedArray;
}