Доступ к элементу ключевого слова фотографии в iPhoto — Applescript

Мне нужно получить доступ к свойству имени ключевых слов для выбора фотографий в iPhoto. Как я могу получить доступ к элементу keyword этих фотографий? Я могу получить доступ к свойствам фотографии, но не к элементу keyword.

Я новичок в Applescript, поэтому прошу прощения, если это очень глупо. Спасибо за любую помощь, которую вы можете предоставить.

Изменить: вот что я пробовал.

set keywordsRef to a reference to keyword of p     --p is a photo
set keyName to name of keywordsRef

Я получаю ошибку -1700. Не уверен, что это поможет.

Редактировать 2:

tell application "iPhoto"
    activate
    try
        set myPhotos to selection

        if myPhotos is false or (the count of myPhotos) is 0 then
            error "Please select an image"
        end if

        repeat with p in myPhotos
            set keyname to the name of keyword 1 of p    --This works.
            set xmldata to xmldata & my addNewPhoto(p)   --Try to get keywords here.
        end repeat
    on error
        --display dialog "Error"
    end try
end tell

on addNewPhoto(p)
    set photodata to "<dict>" & return & my addPhotoName(name of p)  --This works.

    --set keyname to the name of keyword 1 of p            --This gets a syntax error at the "1" after keyword. It expects the end of line.

    set keycount to the count of keywords of p
    repeat with i from 1 to keycount
        --log (the name of keyword i of p as string)        --Syntax error also at "i" after keyword.
    end repeat

    set photodata to photodata & my addPhotoKeywords()
    set photodata to photodata & "</dict>" & return
end addNewPhoto

person Patrick Veilleux    schedule 02.09.2014    source источник


Ответы (1)


Учитывая, что у вашей фотографии есть ключевые слова, это работает для меня.

tell application "iPhoto"

    set p to photo id 4.294981127E+9

    set keyname to the name of keyword 1 of p

end tell

Чтобы пройти через них:

tell application "iPhoto"

    set p to photo id 4.294981127E+9

    set keycount to the count of keywords of p

    repeat with i from 1 to keycount
        log (the name of keyword i of p as string)
    end repeat

end tell

Если они не работают, это может быть связано с тем, как вы инициализируете переменную фото (p), если это так, включите этот код и в свой вопрос.

person adamh    schedule 02.09.2014
comment
Да, они работают на меня в новом сценарии, который дает мне надежду. Я добавил код, чтобы показать, как я инициализирую фотографию и передаю ее методу, где я ее использую. Спасибо! - person Patrick Veilleux; 03.09.2014