【问题标题】:symbol not found when using ScriptingBridge.framework (Mac OS X)使用 ScriptingBridge.framework (Mac OS X) 时找不到符号
【发布时间】:2009-08-06 23:38:01
【问题描述】:

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

我使用以下方法生成了一个标题:

sdef "/Applications/Address Book.app" | sdp -fh --basename 通讯录

标头生成正常。但是,在编译时,我收到以下错误:

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

【问题讨论】:

    标签: objective-c xcode


    【解决方案1】:

    当我删除违规行时,链接问题消失了:向可编写脚本的对象询问其类 (AddressBookPerson)。

    [AddressBookPerson 类]

    我用 classForScriptingClass 替换了对 class 的调用,如下所示:

    AddressBookApplication *sab = [SBApplication applicationWithBundleIdentifier:@"com.apple.AddressBook"];
    
    NSArray *array = sab.selection;
    if ( [数组计数] > 0 ) {
       AddressBookItem *item = [数组 objectAtIndex:0];
       if ( item && [item isKindOfClass:[sab classForScriptingClass:@"person"]]) {
          NSString *vCard = [(AddressBookPerson *) item vcard];
       }
    }
    

    其中“person”是在 sdef 生成的脚本定义文件中指定的类的名称。

    【讨论】:

      猜你喜欢
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 2014-06-28
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      相关资源
      最近更新 更多