При попытке загрузить файл XML/plist iTunes, я получаю "внутреннее переполнение таблицы". После поиска с помощью Google похоже, что в Applescript закончилась память. Файл является 18 meg на диске, поэтому в то время как на большей стороне вещей, он должен все еще работать над Mac с 2 концертами.
Как я могу разрешить это?
Очевидно, так как это создается iTunes, я не могу управлять генерированием его очень.
Обновление: соответствующий отрывок:
tell application "System Events"
tell property list file (itunes_xml_file as string)
tell contents
set my_tracks to value of property list item "Tracks"
repeat with t in items of my_tracks
Я полагаю, что AppleScript просто не предназначен для обработки такого количества данных. Некоторое время назад я пытался использовать AppleScript и пытался сделать что-то подобное (чтение библиотеки iTunes). Первоначальное намерение AppleScript состояло в том, чтобы автоматизировать приложения, отправляя им события AppleEvents, что в сочетании со странным синтаксисом AppleScript сильно сбивает с толку и затрудняет выполнение множества простых вещей.
Спустя некоторое время я решил использовать Python вместо этого, поскольку он предоставляет простой модуль для чтения файлов plist: http://docs.python.org/dev/library/plistlib.html
Возможно не то, что вы хотели услышать, но проблема AppleScript в том, что он легко перегружается данными, поскольку абстракция данных, с которыми он работает, довольно громоздка и занимает много памяти.
Я уверен, что если вы попробуете Python, у вас будет что-то запущенное менее чем за час. Python по умолчанию установлен на всех Mac, и его действительно легко изучить.