我正在尝试使用Obj-C中的脚本桥(XCode 4.1,SDK10.7)访问iPhoto图像中的全球定位系统信息。下面是一个代码片段:
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/SDK10.7构建appscript,但没有成功。
发布于 2012-06-24 08:28:09
这可以通过获取其属性来实现
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"]);
}https://stackoverflow.com/questions/7358073
复制相似问题