我创建了
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'
?
答案 0 :(得分:1)
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"]
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]);