So I have solved the problem and the problem that needed to be recognised is that in the JSON the photo is a key which holds an array of dictionaries. So how to access specific items inside that array ?
//In this case valueForKey @"photo" will return as an array
NSArray *results = [flickr valueForKey:@"photo"];
//next we can iterate through the array. Each element of the Array is a dictionary
for(NSDictionary *UserPhotoData in results){
//now we can retrieve the ID (or whatever piece of data you require
NSNumber *getId = [UserPhotoData valueForKey:@"id"];
NSLog(@" id %@", getId);
}
That works.
However I am not sure
1) How a developer knows what is returned by valueForKey. Sometimes it is NSArray, sometimes it is a String or a number.