尝试分配给可选 属性 时类型不匹配
Mismatching types when trying to assign to optional property
我有一个带有 foo
属性
的 CoreData 对象
var foo: NSNumber?
现在我想给它赋值,但该值是可选的:Int64?
我尝试了以下方法:
var bar:Int64?
foo = bar != nil ? NSNumber(value:bar!) : nil
但这会导致
Result values in '? :' expression have mismatching types 'NSNumber' and '_'`
有没有简单的方法来完成这项工作?我尝试了 nil as NSNumber?
,但没有成功。
您的代码不起作用,因为在表达式 foo = bar != nil ? NSNumber(value:bar) : nil
中,您尝试传递给 NSNumber(value:)
的 bar
仍然是可选的。您可以使用 force unwrap (!
) 运算符来展开它,但它不如正确的解决方案优雅:
这是 Optional.map
的完美用例:
foo = bar.map{ NSNumber(value: [=10=]) }
我有一个带有 foo
属性
var foo: NSNumber?
现在我想给它赋值,但该值是可选的:Int64?
我尝试了以下方法:
var bar:Int64?
foo = bar != nil ? NSNumber(value:bar!) : nil
但这会导致
Result values in '? :' expression have mismatching types 'NSNumber' and '_'`
有没有简单的方法来完成这项工作?我尝试了 nil as NSNumber?
,但没有成功。
您的代码不起作用,因为在表达式 foo = bar != nil ? NSNumber(value:bar) : nil
中,您尝试传递给 NSNumber(value:)
的 bar
仍然是可选的。您可以使用 force unwrap (!
) 运算符来展开它,但它不如正确的解决方案优雅:
这是 Optional.map
的完美用例:
foo = bar.map{ NSNumber(value: [=10=]) }