Gps 脚本桥和iPhoto-lat/lon信息仅适用于NSInteger?

Gps 脚本桥和iPhoto-lat/lon信息仅适用于NSInteger?,gps,latitude-longitude,scripting-bridge,iphoto,Gps,Latitude Longitude,Scripting Bridge,Iphoto,我正在尝试使用Obj-C XCode 4.1、SDK 10.7中的脚本桥访问iPhoto图像中的GPS信息。以下是一段代码片段: iPhotoApplication *iPhoto = [SBApplication applicationWithBundleIdentifier:@"com.apple.iPhoto"]; NSArray *selection = [iPhoto selection]; for ( iPhotoPhoto *i in selection ) {

我正在尝试使用Obj-C XCode 4.1、SDK 10.7中的脚本桥访问iPhoto图像中的GPS信息。以下是一段代码片段:

 iPhotoApplication *iPhoto = [SBApplication applicationWithBundleIdentifier:@"com.apple.iPhoto"];
  NSArray *selection = [iPhoto selection];
  for ( iPhotoPhoto *i in selection ) { 
    NSLog(@"'%@': lat %ld, lon %ld", [i imageFilename], [i latitude], [i longitude]);   
  }
不幸的是,纬度和经度属性是NSInteger类型,它产生的结果如此不精确,例如38120,以至于完全无用。当使用Applescript访问相同的属性时,会产生正确的值,例如38.03555555,-120.401388883333。有没有更好的方法在Obj-C中获取此信息

另外,iPhotoPhoto类有一个名为id的属性,由于id是Obj-C保留字,因此无法获取该属性。[i id]编译但崩溃。再说一次,我怎样才能得到这个财产


我曾尝试为XCode 4/SDK 10.7构建appscript,但没有成功。

这可以通过获取其属性来实现

NSDictionary *dict;
for ( iPhotoPhoto *i in selection ) {
      dict = [i properties];
      NSLog(@"'%@': lat %@, lon %@, ID %@", [i imageFilename], [dict objectForKey:@"latitude"], [dict objectForKey:@"longitude"], [dict objectForKey:@"id"]);
}