2011-09-09 7 views
0

Obj-C(XCode 4.1、SDK 10.7)のScript Bridgeを使用してiPhotoイメージのGPS情報にアクセスしようとしています。スクリプトブリッジとiPhoto - 緯度/経度情報はNSIntegerのみですか?

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]); 
    } 

残念なことに、緯度と経度の特性は全く役に立たないこと(例えば、38120)のような結果が非常に不正確生じるタイプNSIntegerがある:ここでは、コードスニペットです。 Applescriptでアクセスしたときと同じプロパティが正しい値を返します(例:38.03555555、-120.401388883333)。 Obj-Cでこの情報を取得するより良い方法はありますか?

また、iPhotoPhotoクラスには "id"というプロパティがあります。これはidがObj-C予約語なので取得できません。 [i id]はコンパイルされますが、クラッシュします。再び、このプロパティを取得する方法は?

私はXCode 4/SDK 10.7用のappscriptをビルドしようとしましたが、成功しませんでした。

答えて

0

これはその性質

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"]); 
} 
を取得することにより可能である
関連する問題