Доступ к ключевому элементу фотографии в 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
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
Если это не сработает, это может быть так, как вы инициализируете переменную photo (p), если это так, включите этот код и в свой вопрос.