2009-08-06 55 views
1

我已將ScriptingBridge.framework包含在目標中,並且當前顯示在Link Binary with Libraries下。使用ScriptingBridge.framework時未找到符號(Mac OS X)

我使用生成的頭部:

sdef 「/應用/地址Book.app」 | sdp -fh --basename通訊錄

標頭生成正常。然而,在編譯的時候,我得到以下錯誤:

未定義的符號: 「.objc_class_name_AddressBookPerson」,從引用: 字面指針@__ OBJC @__ cls_refs @ AddressBookPerson在ServerController.o

回答

1

鏈接的問題消失了當我刪除有問題的行時:爲其類(AddressBookPerson)請求一個腳本對象。

[AddressBookPerson class]

我取代調用classForScriptingClass,如下所示:

AddressBookApplication *sab = [SBApplication applicationWithBundleIdentifier:@"com.apple.AddressBook"]; 

NSArray *array = sab.selection; 
if ([array count] > 0) { 
    AddressBookItem *item = [array objectAtIndex:0]; 
    if (item && [item isKindOfClass:[sab classForScriptingClass:@"person"]]) { 
     NSString *vCard = [(AddressBookPerson *) item vcard]; 
    } 
} 

其中「人」是如在由sdef生成的腳本定義文件中指定的類的名稱。

相關問題