【发布时间】:2011-12-08 16:03:18
【问题描述】:
在我的一个应用程序中,我向标准 AppleScript 套件的 document 类添加了一些新属性。其中一些属性的类型为text,其他属性的类型为boolean。我已经编写了一个“sdef”文件并将 if 添加到我的应用程序的资源中。
但是当我启动应用程序时,控制台中有这样的消息:
.sdef 警告类型 'text' 属性 'title' 的类 'window' 中 套件“标准套件”:AppleScript 名称引用可能不适用于 这个属性,因为它的类型不是 NSString 派生的。
当我真正尝试从 AppleScript 中的 text 类型的新属性中获取值时,它将失败。我的应用程序中的正确方法被调用,它返回正确的值NSString,但 AppleScript 返回错误。控制台中又出现了一条消息:
返回脚本命令结果时出错:结果 对象...“请求的 NSString 值”...无法转换为 “文本”类型的 Apple 事件描述符。这个类的实例 '__NSCFString' 发送时返回 nil -objectSpecifier(不是 被覆盖?)并且没有为脚本声明强制类型 类'文本'。
这可能意味着无法将 Cocoa NSString 对象转换为 AppleScript text 对象。
当我尝试从其中一个新的布尔属性中获取值时,它工作得很好。
将NSString 对象转换为AppleScript text 对象需要做什么?
【问题讨论】:
-
没有看到任何代码就很难诊断。我最初的问题是 1)内存是否被正确释放,2)你是否正确创建了 NSString?
-
你能发一些代码吗?
标签: cocoa text nsstring applescript sdef