символ не найден при использовании ScriptingBridge.framework (Mac OS X) - PullRequest
1 голос
/ 07 августа 2009

Я включил ScriptingBridge.framework в целевой объект, и в настоящее время он отображается в разделе «Связь двоичных данных с библиотеками».

Я сгенерировал заголовок, используя:

sdef "/ Applications / Address Book.app" | sdp -fh --basename Адресная книга

Сгенерирован заголовок в порядке. Однако во время компиляции я получаю следующую ошибку:

Неопределенные символы: ".objc_class_name_AddressBookPerson", на который ссылается: литерал-указатель @__ OBJC @__ cls_refs @ AddressBookPerson в ServerController.o

1 Ответ

1 голос
/ 07 августа 2009

Проблема со связыванием исчезла, когда я удалил некорректную строку: запрос объекта сценария для его класса (AddressBookPerson).

[AddressBookPerson class]

Я заменил вызов на 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];
   }
}

где "person" - это имя класса, указанное в файле определения сценария, сгенерированном sdef.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...