使用ScriptingBridge.framework时未找到符号(Mac OS X)

时间:2009-08-06 23:38:01

标签: objective-c xcode

我在目标中包含了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

1 个答案:

答案 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生成的脚本定义文件中指定的类的名称。