0

苹果的文件说函数random返回

一个NSNumber对象(一个随机整数值)

运行这两行代码后:

let expression = NSExpression(forFunction: "random", arguments: [])
let value: AnyObject = expression.expressionValueWithObject(nil, context: nil)

我得到的是一个介于 0 和 1 之间的数字,例如 0.312047983519733。


至于 Function random:,文档说它返回

一个NSNumber对象(一个介于 0 和数组中的值之间的随机整数值(不包括))

我尝试根据文档使用它(取一个参数,该参数是一个NSArray包含一个表示数字的 NSExpression 对象的对象):

let expression = NSExpression(forFunction: "random:", arguments: [NSExpression(forConstantValue: 100)]) // The compiler says "Execution was interrupted, reason: signal SIGABRT"
let value: AnyObject = expression.expressionValueWithObject(nil, context: nil)

第一行甚至无法通过编译。在控制台中,它显示“由于未捕获的异常‘NSInternalInconsistencyException’而终止应用程序,原因:‘随机:不是受支持的方法。’ "


我不确定问题是什么。我已经尝试了所有功能 ,除了和init(forFunction:arguments:)之外,所有功能都按照文档中的描述工作。randomrandom:

4

1 回答 1

0

这不起作用的原因是因为 和 之间的选择器名称略有random不同randomn:。注意n后者末尾的 。

这应该工作

let expression = NSExpression(forFunction: "randomn:", arguments: 
[NSExpression(forConstantValue: 100)])
let value: AnyObject = expression.expressionValueWithObject(nil, context: nil)
于 2016-03-31T10:45:43.783 回答