繁体   English   中英

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

[英]symbol not found when using ScriptingBridge.framework (Mac OS X)

我已经将ScriptingBridge.framework包含在目标中,并且当前显示在Link Binary with Libraries下。

我使用以下方法生成了标头:

sdef“ /应用程序/地址簿.app” | sdp -fh --basename地址簿

标头生成正常。 但是,在编译时,出现以下错误:

未定义的符号:“。objc_class_name_AddressBookPerson”,引用自:ServerController.o中的文字指针@__ OBJC @__ cls_refs @ AddressBookPerson

当我删除有问题的行时,链接问题消失了:向可编写脚本的对象询问其类(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生成的脚本定义文件中指定的类的名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM