NSAppleEventDescriptor编码

时间:2013-07-14 20:54:47

标签: objective-c applescript macruby

以下数据块是NSData的{​​{1}}表示形式,我将其作为调用NSAppleEventDescriptor的回复。   NSAppleScript块的编码是什么?如何将其转换为NSData      数据是

  

< 646c6532 00000000 6c697374 00000174 00000000 00000000 00000018   6c697374 0000000c 00000000 75747874 00000008 0068006f 006d0065   75747874 0000001a 00540065 006d0070 00390033 00370033 00360030   00360031 00367574 78740000 001a0054 0065006d 00700032 00300037   00370030 00390033 00310033 75747874 00000018 00540065 006d0070   00390038 00380039 00340038 00310037 75747874 0000001a 00540065   006d0070 00330033 00350032 00390030 00300031 00397574 78740000   001a0054 0065006d 00700035 00310039 00380039 00380030 00300032   75747874 0000001a 00540065 006d0070 00330030 00300036 00310038   00320031 00387574 78740000 000a0044 00610076 00690064 75747874   00000010 0055006e 00740069 0074006c 00650064 75747874 0000000c   00700067 00690073 00680061 75747874 0000001a 00540065 006d0070   00380038 00390038 00370038 00330034 00357574 78740000 001a0054   0065006d 00700035 00380038 00360038 00320035 00300037>

非常感谢,大卫

1 个答案:

答案 0 :(得分:0)

使用-[NSAppleEventDescriptor stringValue] - 如果它不是一个,则强制AEDesc为typeUnicodeText并将其解压缩为NSString(否则如果无法强制则返回nil)。

你不应该在-[NSAppleEventDescriptor data]中探讨,除非你需要解码其中一种AE类型(例如typeLongDateTime)NSAppleEventDescriptor不提供便利打包/解包方法,但这种方式疯狂的谎言。

如果您的AppleScript代码是应用程序的一部分而不是用户提供的脚本,请考虑使用AppleScript-ObjC而不是NSAppleScript。与PyObjC和RubyCocoa一样,ASOC使AppleScript脚本对象作为常规Cocoa类和实例显示给程序的其余部分,并在跨过桥时自动将常见AS值转换为它们的Cocoa等价物,因此使用起来更容易,更强大。 / p>