I’m currently working on a project in which i need to read some (Latitude, Longitude and date ) EXIF data. The location data seems correct, but the date i’m getting seems to be the “date last modified” date.
{
CLLocation *loc = [asset valueForProperty:ALAssetPropertyLocation];
NSDate *date = [asset valueForProperty:ALAssetPropertyDate];
//Returns Last modified date(Picture was taken ... let's say september
//last year and it would return the date and time I 'modified' the image).
NSString *latitude = [NSString stringWithFormat:@"%g",loc.coordinate.latitude];//Returns correct Latitude
NSString *longitude = [NSString stringWithFormat:@"%g",loc.coordinate.longitude];//Returns correct Longitude
}
My question is: Am i doing something terribly wrong, or is this expected behavior.
I also tried to use the loc.timestamp instead of the [asset valueForProperty:ALAssetPropertyDate] but these returned the same date.
Any help is greatly appreciated !
Though it’s not explicitly documented, I’m guessing that this is the expected behavior. The date refers to when the asset was created and when you’re modifying the image, you’re probably implicitly creating a new asset. Nothing in the
ALAssetdocumentation suggests that its properties correspond to the image’s EXIF data.To access the EXIF data, you could use the Image I/O framework (available since iOS 4.0), specifically the
CGImageSourceCopyPropertiesfunction.