私はOSX、Xcode 8.2で作業しています。目標-C。 私はAdobe InDesignのアドレッシングにスクリプトブリッジを使用しています。私はかなり長いAppleScriptを持っています。私はScripting-BridgeでObjective-Cに翻訳して、そのバックグラウンドタスクの可能性を利用したいと思っています。NSAppleEventDescriptorがスクリプトブリッジからアンラップされた問題を返しました
より良く理解するために、私は前にあなたのAppleScriptから一部お見せしましょう:AppleScriptでは
tell application "Adobe InDesign CC 2017"
tell active document
-- grep setup done before
find grep
end tell
end tell
に結果を:
{
text from character 294 to character 298 of story id 1354 of document id 5 of application "Adobe InDesign CC 2017",
text from character 140 to character 144 of story id 1377 of document id 5 of application "Adobe InDesign CC 2017"
}
私はAppleScriptでは、文字列を取得したい場合、私は(実行気づきます"文字列として"):
text from character 294 to character 298 of story id 1354 of document id 5 of
application "Adobe InDesign CC 2017" as string
--> "Test1"
目的語-cの翻訳方法:
// document is an instance of the SBApplication indesign
[document findGrepReverseOrder:NO];
結果が読み:
(
"<AdobeInDesignCC2017TextCtxt @0x608020a442f0: AdobeInDesignCC2017TextCtxt [<NSAppleEventDescriptor: 'obj '{ 'form':'indx', 'from':'obj '{ 'form':'ID ', 'from':'obj '{ 'form':'ID ', 'from':null(), 'seld':5, 'want':'docu' }, 'seld':1354, 'want':'cflo' }, 'seld':294, 'want':'cha ' }>..<NSAppleEventDescriptor: 'obj '{ 'form':'indx', 'from':'obj '{ 'form':'ID ', 'from':'obj '{ 'form':'ID ', 'from':null(), 'seld':5, 'want':'docu' }, 'seld':1354, 'want':'cflo' }, 'seld':298, 'want':'cha ' }>] of AdobeInDesignCC2017Story id 1354 of AdobeInDesignCC2017Document id 5 of application \"Adobe InDesign CC 2017\" (696)>",
"<AdobeInDesignCC2017TextCtxt @0x608020a44140: AdobeInDesignCC2017TextCtxt [<NSAppleEventDescriptor: 'obj '{ 'form':'indx', 'from':'obj '{ 'form':'ID ', 'from':'obj '{ 'form':'ID ', 'from':null(), 'seld':5, 'want':'docu' }, 'seld':1377, 'want':'cflo' }, 'seld':140, 'want':'cha ' }>..<NSAppleEventDescriptor: 'obj '{ 'form':'indx', 'from':'obj '{ 'form':'ID ', 'from':'obj '{ 'form':'ID ', 'from':null(), 'seld':5, 'want':'docu' }, 'seld':1377, 'want':'cflo' }, 'seld':144, 'want':'cha ' }>] of AdobeInDesignCC2017Story id 1377 of AdobeInDesignCC2017Document id 5 of application \"Adobe InDesign CC 2017\" (696)>"
)
各AdobeInDesignCC2017TextCtxtオブジェクトは、単語の位置や長さをマークする2 appleeventdescriptorsが含まれているように見えます。私は情報を抽出するためにそれらにアクセスする必要があります。私はhをチェックした。ファイルとして "文字列として" applescriptのようなテキストを抽出するメソッドを見つけることができません。ディスクリプタにどのようにアクセスできますか?任意のアイデアが評価されます
'get'を呼び出しますか? ' - [SBObject get]' 'レシーバの評価を強制し、実際のオブジェクトを即座に返すようにします。 – Willeke
それはトリックでした!ありがとうございました。 –