使用for循环设置数组中的值

时间:2012-06-05 21:50:38

标签: ios json for-loop

我有一个UITableViewController,它使用一个数组,其中包含行中每个条目的值。 我想通过迭代从JSON文件读取的值来设置该数组的值。

这是我创建的新方法,用于将数据读入数组并将其返回给我的视图控制器。我不知道在哪里返回数组,或者如何真正设置它。

+(NSArray *)setDataToJson{
NSDictionary *infomation = [NSDictionary dictionaryWithContentsOfJSONString:@"Test.json"];
NSArray *test = [infomation valueForKey:@"Animals"];
for (int i = 0; i < test.count; i++) {
    NSDictionary *info = [test objectAtIndex:i];
    NSArray *array = [[NSArray alloc]initWithObjects:[Animal animalObj:[info valueForKey:@"AnimalName"] 
location:[info valueForKey:@"ScientificName"] description:[info valueForKey:@"FirstDesc"] image:[UIImage imageNamed:@"cat.png"]], nil];
        return array;

我知道我的animalObj函数在数据是本地字符串(@“Cat”)和我的dictionaryWithContentsOfJSONString工作时有效,因为我已经测试过,但是我还没有用这个函数将数据设置为数组,只有UILabels,所以这是我感到困惑的地方,关于如何将这些数据设置为数组。但仍然使用For循环。

1 个答案:

答案 0 :(得分:1)

您想要使用的实例 NSMutableArray, 这将允许您逐步向元素添加元素 用for循环迭代:

...
NSMutableArray *array = [NSMutableArray array];
for (int i = 0; i < test.count; i++) { 
    NSDictionary *info = [test objectAtIndex:i]; 
    Animal *animal = [Animal animalObj:[info valueForKey:@"AnimalName"]  
                              location:[info valueForKey:@"ScientificName"] 
                           description:[info valueForKey:@"FirstDesc"] 
                                 image:[UIImage imageNamed:@"cat.png"]];
    [array addObject:animal];
}
return array;

由于NSMutableArrayNSArray的子类,因此无需更改方法的返回类型。

相关问题