【发布时间】:2017-10-27 13:59:56
【问题描述】:
我有一个名为:Transaction 的实体和一个名为:amount 的属性。
我想从amount 属性声明一个数组,该属性可以使用求和数组示例代码
sum = array_name.reduce(0,+)
我正在尝试用这种方式从属性声明一个数组
var amountArray =
(self.transactionsArray as NSArray).value(forKey: "amount") as! NSArray
sum = amountArray.reduce(0,+)
但它不起作用并抛出错误
Ambiguous reference to member '+'
【问题讨论】:
-
这是一个完美的例子,为什么你应该不在 Swift 中使用
NSArray。NSArray不提供任何类型信息。编译器根本不知道+是否意味着添加项目(数字)或连接它们(字符串),或者包含类型是否甚至响应运算符+。 -
let sum = transactionsArray.reduce(0) { $0 + $1.amount }之类的东西应该可以工作,没有 NSArray 或 KVC。 -
感谢您的回复。我试过了,但它有一个错误“表达式类型不明确,没有更多上下文”