【发布时间】:2016-09-10 16:02:38
【问题描述】:
我在下面的函数addPet 中遇到错误Contextual type AnyObject cannot be used within dictionary literal,同时尝试用字典中的newPet 参数成分填充数据库。
import Foundation
import Firebase
struct Pet {
var name:String?
var type:String?
var age:Int?
var feedingList:[String]
var walkingList:[String]
}
struct User {
var currentId:String?
var numberOfPets:Int?
var pets:[Pet]
}
class petBrain {
var reff = FIRDatabaseReference()
var currentUser:User = User(currentId: "",numberOfPets: 0,pets: [])
init(){
self.reff = FIRDatabase.database().reference()
}
func setUserId(cId:String?){
self.currentUser.currentId = cId
}
func addPet(newPet:Pet) {
self.reff.child("pets").childByAutoId().setValue(["name":newPet.name, "type":newPet.type, "age":newPet.age, "fList":newPet.feedingList, "wList":newPet.walkingList])
}
}
我已经在其他 viewController 中完成了此操作,同样适用于用户并且它在字典形状中工作正常(不会产生错误)
let em = emailTextField.text!
let us = usernameTextField.text!
...
else {
print("User created! Loging in.")
self.login()
// adding user to DB of users
self.ref.child("users").child(user!.uid).setValue(["email":em, "username":us])
}
我在宠物案中做错了什么?可能是由于结构或结构元素类型?这两个结构定义好了吗?
【问题讨论】:
-
你在用 swift3 编码吗?
标签: swift firebase swift2 firebase-realtime-database