PFUser 到自定义模型
PFUser to custom model
我有一个从 Parse 为我的 PFUser 构建的模型:
import Foundation
import Parse
class TradeUser : PFUser {
override class func initialize() {
self.registerSubclass()
}
var userID : String {
get {return objectForKey("objectId") as! String}
set { setObject(newValue, forKey: "objectId") }
}
var emailAddress : String {
get {return objectForKey("email") as! String}
set { setObject(newValue, forKey: "email") }
}
var firstName : String {
get {return objectForKey("firstName") as! String}
set {setObject(newValue, forKey: "firstName")}
}
var lastName : String {
get {return objectForKey("lastName") as! String}
set {setObject(newValue, forKey: "lastName")}
}
var primaryQueue : String {
get {return objectForKey("primaryQueue") as! String}
set {setObject(newValue, forKey: "primaryQueue")}
}
var image : PFFile {
get { return self["profileImage"] as! PFFile }
set { self["profileImage"] = newValue }
}
}
但是当我查询以获取用户并尝试将其转换为该用户时,我得到了 "Could not cast value of type 'PFUser' (0x107555928) to 'ShiftSwap.TradeUser' (0x10754e910)."
我认为 TradeUser 是与 PFUser 相同的值类型,因为它是 PFUser 类型转换?我有点困惑,如有任何澄清,我们将不胜感激!
编辑:
@IBAction func chatBarButton(sender: AnyObject) {
let postingUser = self.object?.objectForKey("userID") as! String
let tradeUserQuery = PFUser.query()
tradeUserQuery?.whereKey("objectId", equalTo: postingUser)
let trader = tradeUserQuery?.getFirstObject() as! TradeUser
var chatVC = MessagesViewController()
chatVC.currentUser = TradeUser.currentUser()
print(TradeUser.currentUser())
chatVC.otherUser = trader
self.navigationController?.pushViewController(chatVC, animated: true)
}
你正在强迫一个不可能的沮丧。您不能将基础 class PFUser 的实例向下转换为派生的 TradeUser。
我有一个从 Parse 为我的 PFUser 构建的模型:
import Foundation
import Parse
class TradeUser : PFUser {
override class func initialize() {
self.registerSubclass()
}
var userID : String {
get {return objectForKey("objectId") as! String}
set { setObject(newValue, forKey: "objectId") }
}
var emailAddress : String {
get {return objectForKey("email") as! String}
set { setObject(newValue, forKey: "email") }
}
var firstName : String {
get {return objectForKey("firstName") as! String}
set {setObject(newValue, forKey: "firstName")}
}
var lastName : String {
get {return objectForKey("lastName") as! String}
set {setObject(newValue, forKey: "lastName")}
}
var primaryQueue : String {
get {return objectForKey("primaryQueue") as! String}
set {setObject(newValue, forKey: "primaryQueue")}
}
var image : PFFile {
get { return self["profileImage"] as! PFFile }
set { self["profileImage"] = newValue }
}
}
但是当我查询以获取用户并尝试将其转换为该用户时,我得到了 "Could not cast value of type 'PFUser' (0x107555928) to 'ShiftSwap.TradeUser' (0x10754e910)."
我认为 TradeUser 是与 PFUser 相同的值类型,因为它是 PFUser 类型转换?我有点困惑,如有任何澄清,我们将不胜感激!
编辑:
@IBAction func chatBarButton(sender: AnyObject) {
let postingUser = self.object?.objectForKey("userID") as! String
let tradeUserQuery = PFUser.query()
tradeUserQuery?.whereKey("objectId", equalTo: postingUser)
let trader = tradeUserQuery?.getFirstObject() as! TradeUser
var chatVC = MessagesViewController()
chatVC.currentUser = TradeUser.currentUser()
print(TradeUser.currentUser())
chatVC.otherUser = trader
self.navigationController?.pushViewController(chatVC, animated: true)
}
你正在强迫一个不可能的沮丧。您不能将基础 class PFUser 的实例向下转换为派生的 TradeUser。