Apple Mail определяет класс account
и константу account
для свойства rule type
условия правила.Компилятор Applescript всегда разрешает это столкновение термина «учетная запись» с классом, делая невозможным выполнение каких-либо действий с условиями правил, которые соответствуют учетным записям.
При наличии такого конфликта, как я могу указать константувместо имени класса?Существует ли синтаксис двойного угла для перечисляемых констант?Есть ли решение, которое работает для коллизий любого типа терминов (не только классов и перечислений)?
Примеры
Создание условия правила "Account"
Цельследующий нерабочий пример - создание условия правила, которое будет соответствовать учетной записи.
tell application "Mail"
set rool to make new rule at end of rules with properties {name:"test", enabled:false}
(* the following ends up creating an 'any recipient' condition, as 'account'
is «class mact»
*)
make new rule condition at end of rule conditions of rool with properties {rule type:account, expression:"Some Account"}
log rule type of last rule condition of rool
-- result: any recipient
(* inspecting the event for the following, «class tacc» produces the proper
record, ({'rtype':'tacc'}), but the rule condition is still an 'any recipient'
*)
make new rule condition at end of rule conditions of rool with properties {rule:«class tacc», expression:"Some Account"}
log rule type of last rule condition of rool
-- result: any recipient
end tell
Сравнение
Цель следующего - проверить, имеет ли условие правила тип правила account
.Для этого сначала создайте в настройках Mail.app правило «Учетная запись» с одним условием, соответствующим какой-либо учетной записи.
tell application "Mail"
set acctType to rule type of first rule condition of rule "Account"
log acctType is account
-- result: false
log acctType is «class tacc»
-- result: false
end tell
Мой предыдущий вопрос " Как получить доступ к свойству, которое имеетто же имя, что и у класса, но другой код события?"похож, но охватывает только конфликты между именами классов и свойств.Более того, решение для него (с использованием «класса ...») работает для свойств, но не для других типов столкновений.