Загрузка специфичных для фреймворка констант в MacRuby

Я пишу небольшой сценарий MacRuby, чтобы получить некоторые ABRecords из поискового запроса, но я не уверен, как получить доступ к перечислениям, объявленным в определенном заголовочном файле для структуры AddressBook.

У меня есть этот скрипт, и я пытаюсь ввести kABFirstNameProperty и kABEqual в среду как константы. Но при запуске сценария две константы не могут быть найдены.

framework "Cocoa"
framework "AddressBook"

globalAddressBook = ABAddressBook.sharedAddressBook
criteriaElement = ABPerson.searchElementForProperty(kABFirstNameProperty, label:nil, key:nil, value:"Callum", comparison:kABEqual)

person Callum Jones    schedule 27.12.2011    source источник


Ответы (1)


В MacRuby (так же, как и в Ruby) константы по соглашению начинаются с заглавной буквы, поэтому, несмотря на то, что AddressBook определяет это как kABFirstNameProperty, вам нужно написать его как KABFirstNameProperty. То же самое касается константы KABEqual в вашем примере, конечно.

person jkh    schedule 27.12.2011