Applescript Cocoa脚本:为“返回浮点(双精度)值”;任何;类型

Applescript Cocoa脚本:为“返回浮点(双精度)值”;任何;类型,applescript,cocoa-scripting,Applescript,Cocoa Scripting,在Sdef中为命令结果指定any类型时,似乎不能简单地返回NS类型,例如NSNumber。相反,需要返回一个NSAppleEventDescriptor 但是,NSAppleEventDescriptor可以处理的值非常有限。似乎不支持浮点数,例如C的double类型 那么,如何为any类型返回双值呢?10.11有一种直接的方法,即doubleValue属性,对于10.11之前的系统版本,您可以使用方法强制描述符类型将描述符强制为这些类型之一 typeIEEE32BitFloatingPoint

在Sdef中为命令结果指定
any
类型时,似乎不能简单地返回NS类型,例如
NSNumber
。相反,需要返回一个
NSAppleEventDescriptor


但是,
NSAppleEventDescriptor
可以处理的值非常有限。似乎不支持浮点数,例如C的
double
类型


那么,如何为
any
类型返回双值呢?

10.11有一种直接的方法,即
doubleValue
属性,对于10.11之前的系统版本,您可以使用方法
强制描述符类型
将描述符强制为这些类型之一

typeIEEE32BitFloatingPoint = 'sing',
typeIEEE64BitFloatingPoint = 'doub',
type128BitFloatingPoint = 'ldvl',

例如,请参见有帮助的代码。我能够使用
[[NSAppleEventDescriptor alloc]initWithDescriptorType:'doub'字节:&doubleVar length:sizeof(double)]创建值。
NSAppleEventDescriptor
实际上并没有看起来那么有限;-)所有支持的类型都列在“是的,阅读和理解AE Mgr文档”中-不过这是另一周的任务:)