I am still somewhat new to ObjC, so please forgive me if my terminology is off.
I have a webservice which returns the following event data in an array:
- eventName
- eventAddress
- eventCity
The webservice array varies in size from time to time, depending on how many events are happening on a certain day.
My problem is that I need to pull this webservice data into a custom class(RandomEvent) automatically, but I'm not sure how to do it exactly.
I can do it manually like this, but since the size of the webservice return array varies, it doesn't make sense to do it this way(see below):
- (NSArray *)todaysEvents {
RandomEvent *event1 = [RandomEvent new];
[event1 setName:eventName[0]];
[event1 setAddress:eventAddress[0]];
[event1 setCity:eventCity[0]];
RandomEvent *event2 = [RandomEvent new];
[event2 setName:eventName[1]];
[event2 setAddress:eventAddress[1]];
[event2 setCity:eventCity[1]];
RandomEvent *event3 = [RandomEvent new];
[event3 setName:eventName[2]];
[event3 setAddress:eventAddress[2]];
[event3 setCity:eventCity[2]];
return @[event1, event2, event3];
}
I know that I will have to iterate over the webservice array, but that's as far as I can get. What is the best way to assign the array values to my custom class? Any guidance will be greatly appreciated.
For you code:
- (NSArray *)todaysEvents {
NSMutableArray *resultArray = [NSMutableArray new];
for (int i = 0; i<eventName.count; i++) {
RandomEvent *event = [RandomEvent new];
[event setName:eventName[i]];
[event setAddress:eventAddress[i]];
[event setCity:eventCity[i]];
[resultArray addObject:event];
}
return [NSArray arrayWithArray:resultArray];
}
But as I understand, you are trying to parse received JSON into objects manually. It can takes a long time for you. Try to use mapping frameworks like this one https://github.com/EasyMapping/EasyMapping .