2011-09-09 5 views
0

Obj-C (XCode 4.1, SDK 10.7)에서 Script Bridge를 사용하여 iPhoto 이미지의 GPS 정보에 액세스하려고합니다.Script Bridge 및 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"]); 
} 
에게 얻어서 가능하다