在 Sdef 中指定any
命令结果的类型时,似乎不能简单地返回 NS 类型,例如NSNumber
. 相反,需要返回一个NSAppleEventDescriptor
.
但是,NSAppleEventDescriptor
它可以处理的值相当有限。似乎不支持浮点数,例如 C 的double
类型。
那么,如何为该any
类型返回双精度值呢?
在 Sdef 中指定any
命令结果的类型时,似乎不能简单地返回 NS 类型,例如NSNumber
. 相反,需要返回一个NSAppleEventDescriptor
.
但是,NSAppleEventDescriptor
它可以处理的值相当有限。似乎不支持浮点数,例如 C 的double
类型。
那么,如何为该any
类型返回双精度值呢?
10.11 有一个直接的方法,一个doubleValue
属性,对于 10.11 之前的系统版本,您可以使用该方法将描述符强制coerceToDescriptorType
为这些类型之一
typeIEEE32BitFloatingPoint = 'sing',
typeIEEE64BitFloatingPoint = 'doub',
type128BitFloatingPoint = 'ldvl',
例如代码参见AppleScriptToolKit