无法获取数组的索引并使其成为NSString

时间:2013-03-08 23:46:01

标签: objective-c xcode nsstring nsarray

我从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]];

任何帮助都很受欢迎!

编辑:该应用不会返回单个值并崩溃。

2 个答案:

答案 0 :(得分:1)

您的代码与JSON的结构不匹配。在您对已删除答案的评论中,您说在向objectAtIndex:发送NSString时遇到异常。在您的情况下,arrayLabel在您认为不是数组时。

如果您的JSON有一个对象,您的代码需要将其视为NSDictionary。同样,对于数组和NSArray以及字符串和NSString

答案 1 :(得分:1)

除了正在发生的任何其他事情之外,你反复提到“第一”但是使用索引1.在大多数基于C语言的编程语言(以及其他语言)中,惯例是索引到数组是基于0的。因此,使用索引0来获取第一个元素。