私のアプリには、AppleScriptに提供したいと思っている生データコンテンツがあります。それをサポートする他のオブジェクトに設定します。Cocoa Scripting:生データのような特別な文字列型を使用する
ここでは、これを達成するためにどのデータ型が使用されているのか分かりません。
たとえば、スクリプトエディタからこの出力を参照してください:
tell application "Script Editor"
the clipboard as record
--> {Unicode text:"text",
«class BBLM»:«data BBLM6C6C756E»,
string:"text"}
end tell
私は、«...データ»これらを返す明らかに4 - 文字コードと、六角はstring-の組み合わせであるにはどうすればよいです実際のデータの符号化されたバイト。
スクリプト可能なプロパティからrawバイトデータを含むNSDataオブジェクトを返そうとしましたが、動作しません。
更新
scripting<type>Descriptor
とscripting<type>WithDescriptor
の実施に関係しています表示されます。 Sketchサンプルコードで使用されている以外のドキュメントは見つかりません。私は私のSdefでそのようなカスタムタイプを定義した場合、これらのタイプのために呼び出されると仮定します。
ただし、私は事前に送信したいタイプがわからないので、Sdefで事前定義することはできません。私はthe clipboard
に似た状況にあります:返すクリップボードのようなデータがあるので、実行時に4文字の型しか知りません。つまり、私はこれらのハンドラーを通して聞かれることはありません。クリップボードの実装と同じように、これらの型を一般的に作成して受け取るには、別の方法が必要です。
'NSData'オブジェクトはAppleScriptのサポートが基本クラスで表現することはできませんNSCoding''に準拠したカスタム '値-types'のために使用されています。例えば、基本的なAppleScriptの型 'point'と' rectangle'は 'NSData'で包まれたC型です。カスタムの 'value-type'を定義するには、sdefファイルにターゲットクラスを用意し、' scripting ... 'メソッドをターゲットクラスのカテゴリに実装する必要があります。 –
vadian
私の他の質問(http://stackoverflow.com/questions/36363705/)であなたのコメントに基づいてもう少し掘り下げた後、私は最終的にあなたが意味していたことを理解していませんでした。すべてNSAppleEventDescriptorを使用するようになります。NSAppleEventDescriptorは、実行中のApplescriptに値を返す前に、最終的にすべてのCocoaタイプが割り当てられるタイプです。 –
まさに、Cocoa Scriptingはすばらしいことですが、文書化されておらず、間違いやすいです。ここスイスでは、「s'isch en saich」(「お尻の痛み」に似ています) – vadian