我有一个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循环。
答案 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;
由于NSMutableArray
是NSArray
的子类,因此无需更改方法的返回类型。