Я нашел ответ. Я также понимаю, что не задал правильный вопрос. Значение, которое я пытаюсь получить, относится к элементу списка свойств.
Вот что я узнал, и как это сделать:
use framework "Foundation"
set _plist to ...
set _objcPlist to GetAppleScriptObjectAsObjcObject(_plist)
set _value to GetObjcPropertyValueByName("MyProperty", item 1 of _objcPlist)
on GetAppleScriptObjectAsObjcObject(asObject)
set a to current application
set cClass to class of asObject
if (cClass is record) then
return a's NSDictionary's dictionaryWithDictionary:asObject
else if (cClass is list) then
return a's NSArray's arrayWithArray:asObject
else
error "Unexpected Class Type"
end if
end GetAppleScriptObjectAsObjcObject
on GetObjcPropertyValueByName(propertyName, objcItem)
return (objcItem's valueForKey:propertyName) as text
end GetObjcPropertyValueByName
Вы пробовали это? –
Почему вы хотите это сделать? В чем заключается задача, над которой вы работаете? Запись - это набор свойств (aka 'struct'), а не произвольная коллекция значений ключа (aka dictionary/hash/map). Есть способы гадости с внутренними буквами, но все они злые хаки со всякими неприятными пропахами. Гораздо лучше использовать правильную структуру данных для работы. – foo
@CraigSmith - Да, конечно, я попробовал. –