nsar中的NSLog nsarray

时间:2016-12-19 11:00:45

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

我创建了

NSArray *test = @[@[@1,@2,@3,@4], @[@3,@5,@6,@7]]; 

将被视为nsarray的{​​{1}}。

但是当我想用

打印出来时
nsarray

该过程始终以

结束
NSLog (@"%@", test); or NSLog(@"%@", test[0]);
NSLog (@"%@", [test ObjectAtIndex: 0]);

请帮助我,有人能告诉我如何处理这个问题吗?一般来说如何调试问题NSException; Signal SIGABRT Reason: 'NSInvalidArgumentException', '-[__NSArrayI compare:]:unrecognized selector sent to instance 0x608000262788'

2 个答案:

答案 0 :(得分:1)

SIGABRT一般意味着存在未捕获的异常。控制台上应该有更多信息。

我执行此代码是我的xcode,它运行正常。

看看这个演示,希望你能获得更好的知识

我使用此代码

 NSArray *array = @[@"1111132324"];
 NSLog(@"array : %@", array);
 NSLog(@"array[0] : %@", array[0]);

我得到输出:

enter image description here

正如你所看到的那样,当我打印数组时,它会在大括号'('和')'中输出。如果我只打印一个字符串的单个元素,这里没有大括号。

正如你所说,你有阵列中的数组,试试这个

NSArray *arrayOuter = @[@"1111132324"];
NSArray *arrayInner = @[arrayOuter];

NSLog(@"array : %@", arrayInner);
NSLog(@"array[0] : %@", arrayInner[0]);
NSLog(@"array[0] : %@", arrayInner[0][0]);

见输出:

enter image description here

您可以扩展您的字典或数组的层次结构或数组字典的混合(无关紧要),最多可以扩展n次。

每个键(对于dict)/ index(对于数组)必须在该层次结构级别。获取数据的方式是从上层到下层。

字典

dict[@"key1"][@"key2"]...[@"keyN"] 

for mix dict-arr

//upper object must be dictionary so start with key.
dict[@"key1"][0][@"key"]..[@"keyN"] or object index.

用于mix array - dict

//upper object must be array so start with index.
dict[0][@"key1"][@"key"]..[@"keyN"] or object index.

注意:键和索引的顺序取决于该层次结构中的对象。

答案 1 :(得分:0)

我希望这对你有用。

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]);