nsarray 中的 NSLog nsarray
Posted
技术标签:
【中文标题】nsarray 中的 NSLog nsarray【英文标题】:NSLog nsarray in nsarray 【发布时间】:2016-12-19 11:00:45 【问题描述】:我创造了
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'
?
【问题讨论】:
你可以使用[[[test objectAtIndex: 0] objectAtIndex: 0] objectAtIndex:0]
,因为你的数组里面包含更多数组
您可能希望使用代码格式编辑您的消息。
你犯了一个根本性的错误。 '@' 是在字符串之前使用的符号。 1、2、3、4等整数不是字符串。
@ElTomato,你是什么意思? @1 将是一个 NSNumber。在这种情况下使用NSLog(@"%@")
非常好。
@ElTomato 你绝对错了。如果您想在数组中添加 int,则将 @ 放在 Int 前面或使用 [NSNumber numberWithInt:4]
【参考方案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[@"key1"][@"key2"]...[@"keyN"]
用于混合 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.
注意:键和索引的顺序取决于该层次结构中的对象。
【讨论】:
数组中使用了有问题的 int 变量,并且您在数组中使用了字符串变量,这意味着您正在测试错误的代码。请再次阅读问题【参考方案2】:我希望这对你有用。
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]);
【讨论】:
以上是关于nsarray 中的 NSLog nsarray的主要内容,如果未能解决你的问题,请参考以下文章