【发布时间】:2016-11-01 17:11:45
【问题描述】:
使用 Firebase Swift 2 版本,我能够做到:
something = ["someOptionalData": optionalData]
ref.updateChildValues(something,......})
转换为 Swift 3 和最新的 Firebase 后,我遇到了这个错误:
Cannot store object of type _SwiftValue at optionalData. Can only store objects of type NSNumber, NSString, NSDictionary, and NSArray.
经过一番谷歌搜索,人们说 firebase 不接受可选类型。
所以我想知道除此之外还有什么更好的处理方法:
if let unwrappedOptionalData = optionalData {
something = [
"someOptionalData": unwrappedOptionalData
]
} else {
something = [
"someOptionalData": true
]
}
ref.updateChildValues(something,......)
【问题讨论】:
-
您的 sn-p 可以减少到
something = ["someOptionalData": optionalData ?? true] -
@dan 但是当 optionalData 为 nil 时我不想将任何内容存储为“someOptionalData”,我尝试过
something = ["someOptionalData": optionalData ?? NSNull()]但 xcode 提示Left side of nil coalescing operator ?? has non-optional type Any, so the right side is never used
标签: ios firebase firebase-realtime-database swift3