for / in循环2d数组中有一个值ios不返回数组而是返回值

时间:2014-08-02 23:14:22

标签: ios objective-c arrays nsarray multidimensional-array

我想从2d数组到1d数组。我有一个这样的数组:@[@["+9390902"]]我试过这样做:@["+9390902"]通过for/in循环和常规for循环,但不知何故,我最终得到"+9390902"而不是嵌套在数组中的字符串。我做错了什么?

基本上

for (NSArray *child in array) {

NSLog(@"Child array: %@",child);

}

返回@"+9390902"而不是@[@"+9390902"],而根本不会这样做。

1 个答案:

答案 0 :(得分:0)

不确定这是否回答了您的问题,但这里是一个概述:

假设你有数组:

NSArray *array = @[@[@"+9390902"]];

(这也可以表示为):

NSArray *array = @[
    @[
        @"+9390902"
    ]
];

你可以迭代这样的值:

for (NSArray *child in array) {

    NSLog(@"Child array: %@",child);

}

然后,你可以用同样的方式遍历孩子。

for (NSString *string in child) {

    NSLog(@"Found string: %@",string);

}

如果你知道它们在那里,你也可以使用下标直接访问这些值:

NSString *string = array[0][0];