我创造了
NSArray *test = @[@[@1,@2,@3,@4], @[@3,@5,@6,@7]]; 这将被认为是nsarray的nsarray。
但是当我想把它打印出来时
NSLog (@"%@", test); or NSLog(@"%@", test[0]);
NSLog (@"%@", [test ObjectAtIndex: 0]);这个过程总是以
NSException; Signal SIGABRT
Reason: 'NSInvalidArgumentException', '-[__NSArrayI compare:]:unrecognized selector sent to instance 0x608000262788' 请帮帮我,谁能告诉我如何处理这个问题?以及如何调试有问题的'Signal SIGABRT'
发布于 2016-12-19 19:50:27
SIGABRT通常意味着有一个未捕获的异常。控制台上应该有更多信息。
我执行的这段代码是我的xcode,它运行正常。
看一下这个演示,希望你能获得更好的知识
我使用下面的代码
NSArray *array = @[@"1111132324"];
NSLog(@"array : %@", array);
NSLog(@"array[0] : %@", array[0]);然后我得到了输出:

正如您所看到的,当我打印数组时,它以大括号'(‘和')’的形式给出输出。如果我只打印数组的单个元素,这里是字符串,就没有大括号。
正如您所说的,数组中有数组,请尝试如下所示
NSArray *arrayOuter = @[@"1111132324"];
NSArray *arrayInner = @[arrayOuter];
NSLog(@"array : %@", arrayInner);
NSLog(@"array[0] : %@", arrayInner[0]);
NSLog(@"array[0] : %@", arrayInner[0][0]);请参见输出:

您可以将字典或数组或数组-字典(无关紧要)的混合层次结构扩展到n倍,如下所示。
每个键(对于dict)/index(对于数组)必须在该层次结构级别中。获取数据的方式是从上层到下层。
对于字典
dict[@"key1"][@"key2"]...[@"keyN"] 对于mix dict-arr
//upper object must be dictionary so start with key.
dict[@"key1"][0][@"key"]..[@"keyN"] or object index.对于混合数组- dict
//upper object must be array so start with index.
dict[0][@"key1"][@"key"]..[@"keyN"] or object index.注意:键和索引的顺序取决于该层次结构中的对象。
发布于 2016-12-19 19:55:35
我希望这对你是有用的。
NSArray *test = @[@[@1,@2,@3,@4],
@[@3,@5,@6,@7]];
NSLog(@"Test array: %@", test);
NSLog(@"Test firstObject: %@", [test firstObject]);
NSLog(@"Test lastObject : %@", [test lastObject]);
NSLog(@"Test objectAtIndex :%@", [test objectAtIndex:0]);
NSLog(@"Test objectAtIndex 2 :%@", test[0]);https://stackoverflow.com/questions/41221147
复制相似问题