Когда приложение использует одно и то же имя для класса и свойства, но разные коды событий, и я пытаюсь использовать свойство в спецификаторе объекта, AppleScript интерпретирует идентификатор как класс, а не свойство.Например:
tell application "Mail"
header of first rule condition of first rule
end
Это приводит к ошибке:
Почта получила ошибку: Не удается получить заголовок условия правила 1 правила 1.
Стиль header
в AppleScript Editor (синий курсив) предполагает, что это имя класса, а не свойство.Как указать, что идентификатор является свойством, и разрешить это конфликт имен явно?
Я использую OS X 10.6.8 и Mail.app 4.5.
Не работающее решение
В " Applescript: полное руководство " Мэтт Нойберг предлагает использовать its
:
Ключевое слово it
необходимо, когда приложение определилосвойство с тем же именем, что и класс.[...] высказывание its
устраняет неоднозначность.
Однако это не решает проблему в моем примере кода выше.После добавления its
, header
все еще стилизован как класс, и сценарий приводит к той же ошибке.
tell application "Mail"
its header of first rule condition of first rule
end
Применение примера из § 20.8.3.«Свойства с одноименными классами» приводят к тому же результату.
tell application "Mail"
tell first rule
tell first rule condition
get its header
end tell
end tell
end tell
Фон
Я пытаюсь написать AppleScript, чтобы расширить условия правила Mail.app для поддержки сопоставления с образцом.Некоторые условия правила в одном из этих расширенных правил должны содержать информацию для сценария, такую как шаблон для сопоставления и действие, которое нужно выполнить, если шаблон соответствует, а не условия, которым должен соответствовать Mail.Я хотел бы использовать свойство header
для этих условий правила.
Альтернативные способы расширения правил для обеспечения соответствия шаблонам хороши, но не запрашиваются.Я все еще хотел бы получить ответ на конкретный вопрос, поскольку проблема может возникнуть в случаях, отличных от этого конкретного использования.