Проблема со связыванием исчезла, когда я удалил некорректную строку: запрос объекта сценария для его класса (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.