2009-08-06 66 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生成的脚本定义文件中指定的类的名称。