我从JSON获取一个数组并将其解析为NSMutableArray
(这部分是正确且有效的)。我现在想要获取该数组并将第一个对象打印到Label。这是我的代码:
NSDictionary *title = [[dictionary objectForKey:@"title"] objectAtIndex:2];
arrayLabel = [title objectForKey:@"label"];
NSLog(@"arrayLabel = %@", arrayLabel); // Returns correct
//Here is where I need help
string = [arrayLabel objectAtIndex:1]; //I do not get the first label (App crashes)
NSLog(@"string = %@", string);
我已经尝试过的其他事情如下:
string = [NSString stringWithFormat:@"%@", [arrayImage objectAtIndex:1]];
和
string = [[NSString alloc] initWithFormat:@"%@", [arrayImage objectAtIndex:1]];
任何帮助都很受欢迎!
编辑:该应用不会返回单个值并崩溃。
答案 0 :(得分:1)
您的代码与JSON的结构不匹配。在您对已删除答案的评论中,您说在向objectAtIndex:
发送NSString
时遇到异常。在您的情况下,arrayLabel
在您认为不是数组时。
如果您的JSON有一个对象,您的代码需要将其视为NSDictionary
。同样,对于数组和NSArray
以及字符串和NSString
。
答案 1 :(得分:1)
除了正在发生的任何其他事情之外,你反复提到“第一”但是使用索引1.在大多数基于C语言的编程语言(以及其他语言)中,惯例是索引到数组是基于0的。因此,使用索引0来获取第一个元素。