Q:

for (id obj in studentArray) only iterating through first item in array

The below is suppose to run through a NSMutableArray of *Students with an address property. But for some reason the for isn't iterating through the entire NSMutableArray, only the first object.
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    for (id obj in studentArray) {
        if ([obj isKindOfClass:[Student class]]) {
            Student *selectedStudent = obj;
            [geocoder geocodeAddressString:selectedStudent.address completionHandler:^(NSArray* placemarks, NSError* error){
                for (CLPlacemark* aPlacemark in placemarks)
                {
                    NSString *latDest1 = [NSString stringWithFormat:@"%.4f",aPlacemark.location.coordinate.latitude];
                    NSString *lngDest1 = [NSString stringWithFormat:@"%.4f",aPlacemark.location.coordinate.longitude];
                    NSLog(@"%@, %@",latDest1, lngDest1);
                }
            }];
        }
    }

Any Ideas what I could be doing wrong? The app doesn't crash, just simply checks one of 4 students in the array.
Thanks 

A:

Looks like geocoding does not return placemarks for the next Student objects. The problem may be because of too much of geocode requests.
From the Apple documentation about Geocoding:

After initiating a forward-geocoding request, do not attempt to
  initiate another forward- or reverse-geocoding request. Geocoding
  requests are rate-limited for each app, so making too many requests in
  a short period of time may cause some of the requests to fail. When
  the maximum rate is exceeded, the geocoder passes an error object with
  the value network to your completion handler.

