I\'m simply trying to convert CLLocationCoordinates into an NSValue to be used in an array brought back later in my app. Here is my code:
It can be that you didn't initialize your array. That's why it's nil when you log it.
_locationsArray = [[NSMutableArray alloc] init];
                                                                        Try:
NSValue *locationValue = [NSValue valueWithBytes:&coordinates[i] objCType:@encode(CLLocationCoordinate2D)];
                                                                        Hi you can convert the CLLocationCoordinates2D into an NSValue by doing like below but have you check the coordinate contains any value or not once.
NSValue *value = [NSValue valueWithMKCoordinate:coordinate];
Thanks
I didn't see any need in coordinatesarray. And you probably didn't initialised it.
Try:
_locationsArray = [NSMutableArray array];
for (CLLocation *location in self.locations) {
    NSValue *locationValue = [NSValue valueWithMKCoordinate: location.coordinate];
    [_locationsArray addObject:locationValue];
    NSLog(@"location = %@", _locationsArray);
}