我在目标中包含了ScriptingBridge.framework,它目前显示在Link Binary with Libraries下。
我用:
生成了一个标题sdef“/ Applications / Address Book.app”| sdp -fh --basename AddressBook
标题已生成确定。但是,在编译时,我收到以下错误:
未定义的符号: “.objc_class_name_AddressBookPerson”,引自: ServerController.o中的文字指针@__ OBJC @__ cls_refs @ AddressBookPerson
答案 0 :(得分:1)
当我删除违规行时,链接问题消失了:向可编写脚本的对象询问其类(AddressBookPerson)。
[AddressBookPerson class]
我用 classForScriptingClass 替换了对 class 的调用,如下所示:
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]; } }
其中“person”是由sdef生成的脚本定义文件中指定的类的名称。