gpt4 book ai didi

ios - (setValue :) Cannot store object of type _SwiftValue at pictureURL. 只能存储NSNumber, NSString, NSDictionary, and NSArray类型的对象

转载 作者:搜寻专家 更新时间:2023-10-30 23:09:25 26 4
gpt4 key购买 nike

在使用 Swift 3 理解 firebase 时遇到一些问题。

我 reshape 了我的观察者,使其看起来像这样:

  currentUserFirebaseReference.observeSingleEvent(of: .value, with: { (snapshot: FIRDataSnapshot) in
let UID = snapshot.key

let dict = snapshot.value as! Dictionary<String,AnyObject>
let pictureURL = dict["pictureURL"] as! String

我以前就是这样

observation..... in {

let picture = snapshot.value!["pictureURL"]

但现在我猜你必须明确地告诉 Firebase 你正在处理字典?

当我尝试设置一个值时,我的问题就来了。

我正在将上面的 pictureURL 添加到 Person 类,稍后我正在做:

 let picURL = self.currentUserInfo.pictureURL // The picture from before

let info = ["pictureURL" : picURL, ....morestuff] as [String : Any] // Swift conversion added the String:Any bit. Assume this is correct?

ref.setValue(info)

我得到这个错误:

Terminating app due to uncaught exception 'InvalidFirebaseData', reason: '(setValue:) Cannot store object of type _SwiftValue at pictureURL. Can only store objects of type NSNumber, NSString, NSDictionary, and NSArray.

为什么会发生这种情况,我该如何解决?

编辑:

所以我发现只有在尝试从类中提取信息时才会发生这种情况。

    let data : Dictionary<String, Any> = ["Cats" : 3, "Dogs" : 9]

DataService.ds.REF_BASE.child("testing").setValue(data)

上面的代码有效。

   class Dog {
var fur : String?
}

let dog = Dog()
dog.fur = "Brown"

let data : Dictionary<String, Any> = ["Cats" : 3, "Dogs" : 9, "DogFur" : dog.fur]

DataService.ds.REF_BASE.child("testing").setValue(data)

该代码崩溃并提示我无法分配 swiftvalue 类型。

最佳答案

看起来 Firebase 希望我们使用 Swift 3 非常具体地处理您的数据类型。

我们需要直接告诉 Swift 我们将拥有什么样的字典。在大多数情况下,它可能是

Dictionary<String, Any>

我认为“Any”是 Swift 3 中的新事物。 AnyObject 在这里不起作用,因为 Swift 重新定义了 AnyObjects 是什么,而 Strings/Ints 似乎不再是它们了。

最后,看来我们必须在您的字典中完全没有可选项。也许可选的是 _SwiftValue?一旦我摆脱了可选值并确保每个值都将在那里,它就开始为我工作。

关于ios - (setValue :) Cannot store object of type _SwiftValue at pictureURL. 只能存储NSNumber, NSString, NSDictionary, and NSArray类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39485065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com