2016-11-17 73 views
1

全部,我在使用我正在开发的Firebase驱动应用程序时遇到了一些问题。问题出现后升级我的xCode到版本8.我已经做了一些广泛的研究,并通过一些Stackoverflow主题试图解决这个问题,因为它似乎是一个非常常见的错误。我收集到的信息可能是我失踪的超级明显的东西,请原谅我的愚蠢。无法在名称处存储_SwiftValue类型的对象。只能存储NSNumber,NSString,NSDictionary和NSArray类型的对象。'

这是我收到的错误。

无法在名称处存储_SwiftValue类型的对象。只能存储NSNumber,NSString,NSDictionary和NSArray类型的对象。'

这是我发现的代码段,我相信。

func saveUser(withUID uid: String, username: String, value: [String: String?], completion: @escaping (Error?) -> Void) { 
     let values = ["https://stackoverflow.com/users/\(uid)": value, "/usernames/\(username)": uid] as [String: Any] 
     root.updateChildValues(values) { (error, _) in 
      completion(error) 
     } 
    } 

    func updateUser(_ newValue: [String: String?]) { 
     currentUser.updateChildValues(newValue) 
    } 

    // MARK: - Posts 

    func createPost(_ _post: [String: String]) { 

     let userUID = Auth.shared.currentUserUID 
     let key = posts.childByAutoId().key 

     var post = _post 
     post["userUID"] = userUID 

     // get current user's username 
     currentUser.child("username").observeSingleEvent(of: .value, with: {  snapshot in 
      if let username = snapshot.value as? String { 
       post["username"] = username 
       let values = [ 
        "/posts/\(key)": post, 
        "/user-posts/\(userUID)/\(key)": post 
       ] 
       self.root.updateChildValues(values) 
      } 
     }) 

    } 
+0

你的'post'看起来像什么.. – Dravidian

回答

0

我在代码中得到了同样的错误,只是想通了。确保values[String : String]而不是[String : String?]的类型。

相关问题