Also - someone mentioned reading a lot of nested brackets. Nested brackets are a bad code smell - the logic should be reworked, likely so that some of it is in entirely seperate functions or methods.
Or even just variables.
Code:
NSArray *theArray = [aDictionary objectForKey:@"dictKey"];
int arrayCount = [the Array count];
...