Может ли AppleScript сделать запись с меткой, не известной во время компиляции? - PullRequest
2 голосов
/ 16 января 2012

Предположим, мой скрипт содержит переменную со значением "foo".Как я могу создать запись со значением {foo: 3}, не зная заранее, что это значение может быть "foo"?

Ответы [ 3 ]

3 голосов
/ 16 января 2012

Я думаю, что есть другой подход к вашей проблеме (особенно если вы используете ASObjC), но вы можете сделать это с помощью run script , например:

set myLabel to text returned of (display dialog "Enter record label (key):" default answer "foo")
set myRecord to run script "return {|" & myLabel & "|:3}"

myRecord --> {foo:3} (using the default answer)

Редактировать: Я окружил метку (ключ) трубками на случай использования зарезервированного термина.

0 голосов
/ 22 ноября 2014

Я знаю, что это вопрос с длинным ответом, но он был одним из первых, который я обнаружил, когда исследовал и попробовал сам.Я также хотел, чтобы переменная, которую я устанавливал (не ключ), определялась во время выполнения, что я выполнил следующим образом:

set scr to "on run argList
    return {|" & dictKey & "|: (item 1 of argList)}
    end run"

set newDict to (run script scr with parameters {dictVal})

Где dictKey - это переменная, используемая в качестве ключа для записи, а dictVal - этозначение, чтобы установить его.Надеюсь, это поможет!

0 голосов
/ 02 января 2014

Другим подходом является использование бесплатного программного обеспечения «Список и записи» от Late Night Software, которое обеспечивает необходимую возможность для получения и установки пользовательских свойств.

http://www.latenightsw.com/freeware/list-record-tools/

Установите myRecord в myRecord& (установите для свойства пользователя foo в myRecord значение 3)

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