我正在尝试使用 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 类型,它产生的结果非常不精确(例如,38,120)以致于完全无用。使用 Applescript 访问相同的属性会产生正确的值(例如,38.03555555,-120.401388883333)。有没有更好的方法在 Obj-C 中获取这些信息?
此外,iPhotoPhoto 类有一个名为“id”的属性,由于 id 是 Obj-C 保留字,因此无法获取该属性。[i id] 编译但崩溃。同样,我如何获得此属性?
我曾尝试为 XCode 4/SDK 10.7 构建 appscript,但没有成功。