У меня есть два свойства строки в делегате приложения моего приложения какао, которые соответствуют KVC.Мой .sdef предоставляет их для appleScript в качестве свойств чтения и записи текста.
Когда я использую applecript для выполнения следующих действий, мои свойства возвращаются правильно:
tell application "iKeepFit"
activate
properties
end tell
Что странно, так это то, что когда я пытаюсь получить доступ к свойству по его имени, в редакторе яблочного скрипта появляется диалоговое окно с сообщением об ошибке моего приложения.Все же выходные данные отладки xcode не показывают сообщений.Ранее, когда мой .sdef был неправильным, xcode показывал бы ошибки, если бы я запускал скрипт, вызывающий мое приложение, когда оно подключено к отладчику.
Например
propertyname
<- error "Не удается получить имя свойства«.число -1728 из «класса dact» <br>set propertyname "value"
<- ошибка «Невозможно установить имя свойства».число -10006 от «class dact» </p>
Есть ли что-то, что обычно вызывает такое поведение?
Я просмотрел две книги по какао, книгу appleScript и множество примеров кода и документации apple, но они, кажется, все реализуют поддержку applecript по-разному.То, что я получил до сих пор, является наиболее близким к рабочему коду из опробования их всех.Вот мой файл .sdef:
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
<!-- use XInclude to include the standard suite
<xi:include href="file:///System/Library/ScriptingDefinitions/CocoaStandard.sdef" xpointer="xpointer(/dictionary/suite)"/>
-->
<suite name="iKeepFit Scripting" code="iKft"
description="Commands and classes for iKeepFit Scripting">
<class name="application" code="capp" description="The application class.">
<!-- the following names the Objective-C class where Cocoa will look for
the property accessor methods for the properties we define for
this AppleScript class. -->
<cocoa class="MyApplication"/>
<!-- the 'done' property. -->
<property name="completedactivity" code="dAct" description="An activity that was completed" type="text" access="rw">
<cocoa key="doneActivity"/>
</property>
<!-- the 'cancel' property. -->
<property name="canceledactivity" code="cAct" description="An activity that was canceled" type="text" access="rw">
<cocoa key="cancelActivity"/>
</property>
<responds-to name="completed">
<cocoa method="handleCompletedActivityScriptCommand:"/>
</responds-to>
</class>
</suite>
Я прокомментировал стандартный набор, потому что он неожиданно сломался и выдаетследующая ошибка: .sdef warning for argument 'FileType' of command 'save' in suite 'Standard Suite': 'saveable file format' is not a valid type name.
Пожалуйста, помогите.Спасибо.