Почему я не могу использовать переменные для настройки события iCal? - PullRequest
0 голосов
/ 09 мая 2011

Я могу использовать iCal для создания нового события.

tell application "iCal"
    tell calendar "Todo"
        set new_event to make new event at end of events
        tell new_event
            set start date to date "Friday, May 6, 2011 4:00:00 PM"
            set end date to date "Friday, May 6, 2011 4:30:00 PM"
            set summary to "Feed ferret"
            set location to "Home 2"
            set allday event to false
            set status to confirmed
        end tell
    end tell
end tell

Однако, когда я использую переменную для замены строки, я получаю сообщение об ошибке.

tell application "iCal"
    tell calendar "Todo"
        set new_event to make new event at end of events
        set m_date to "Friday, May 6, 2011 4:00:00 PM" --> variable m_date
        tell new_event
            set start date to date m_date --> Error
            set end date to date "Friday, May 6, 2011 4:30:00 PM"
            set summary to "Feed ferret"
            set location to "Home 2"
            set allday event to false
            set status to confirmed
        end tell
    end tell
end tell

enter image description here

Почему я не могу использовать переменные для настройки события iCal?

1 Ответ

1 голос
/ 09 мая 2011

потому что «дата» - это функция, которая преобразует строку в формат даты, который принимает ical, поэтому вы просто должны поместить «date» в свою переменную

on somefunction()
    set m_date to date "Friday, May 6, 2011 4:00:00 PM"
    my make_todo(m_date)
end somefunction

on make_todo(m_date)
    tell application "iCal"
        tell calendar "Todo"
            set new_event to make new event at end of events

            tell new_event
                set start date to m_date
                set end date to date "Friday, May 6, 2011 4:30:00 PM"
                set summary to "Feed ferret"
                set location to "Home 2"
                set allday event to false
                set status to confirmed
            end tell
        end tell
    end tell
end make_todo

LL конец сказать

...