【问题标题】:Cocoa Scripting: Return a floating point (double) value for "any" typeCocoa 脚本:为“任何”类型返回浮点(双精度)值
【发布时间】:2016-05-06 23:55:25
【问题描述】:

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

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

那么,我如何返回 any 类型的双精度值?

【问题讨论】:

    标签: applescript cocoa-scripting


    【解决方案1】:

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

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

    示例代码见AppleScriptToolKit

    【讨论】:

    • 这有帮助。我能够用[[NSAppleEventDescriptor alloc] initWithDescriptorType:'doub' bytes:&doubleVar length: sizeof(double)] 创造价值
    • NSAppleEventDescriptor 实际上并不像看起来那样 limited ;-) 所有支持的类型都列在Apple Event Manager
    • 是的,阅读和理解 AE Mgr 文档 - 不过,这是另一周的任务 :)
    猜你喜欢
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 2018-07-06
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 2019-10-19
    相关资源
    最近更新 更多