Вам необходимо проверить тип объекта (может быть NSArray или NSDictionary) и затем выполнить итерацию соответственно
NSString *key, *val;
NSEnumerator myenum;
if ([result isKindOfClass:[NSDictionary class]]) {
for (key in result) {
myenum = [result objectEnumerator];
while (val = [myenum nextObject]) {
if ([val isKindOfClass:[NSArray class]]) {
for (id entry in (NSArray *)val) {
if ([entry isKindOfClass:[NSDictionary class]]) {
NSString * theid = [(NSDictionary *) entry objectForKey:@"id"];
NSString *thename = [(NSDictionary *)entry objectForKey:@"name"];
// do your stuff here
}
}
}