I have a UITableViewController that uses an array with values for every entry in the rows.
I want to set the values of that array by iterating over values read from a JSON file.
This is the new method I have created to read that data into an array and return it to my view controller. I don’t know where to return the array, or how to really set it.
+(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;
I know that my animalObj function worked when the data was local strings(@”Cat”) and my dictionaryWithContentsOfJSONString works because I have tested, but I haven’t used this function to set data to an array, only to UILabels, so this is where I am confused, on how to set this data into an array. But still use the For loop.
You want to use an instance of
NSMutableArray,which will let you incrementally add elements to the array as you
iterate with the for-loop:
Because
NSMutableArrayis a subclass ofNSArray, there’s no need change the return type of your method.