Apple's document表示函数random
返回
NSNumber
对象(随机整数值)
运行这两行代码后:
let expression = NSExpression(forFunction: "random", arguments: [])
let value: AnyObject = expression.expressionValueWithObject(nil, context: nil)
我得到的是0到1之间的数字,例如0.312047983519733。
对于函数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',原因:'random:不是受支持的方法。'”
我不确定问题是什么。我已经尝试了所有功能
init(forFunction:arguments:)
,除random
和random:
外,所有内容均按照文档中的说明进行操作。
答案 0 :(得分:0)
这不起作用的原因是因为random
和randomn:
之间的选择器名称略有不同。请注意后者末尾的n
。
这应该有效
let expression = NSExpression(forFunction: "randomn:", arguments:
[NSExpression(forConstantValue: 100)])
let value: AnyObject = expression.expressionValueWithObject(nil, context: nil)