With swift 1.2, I can no longer retrieve an array of poiter with parse subclass and downcasting it with another parse subclass.
I always found the error:
fatal error: NSArray element failed to match the Swift Array Element type
Do you have an idea or it may come?
The code:
import Foundation
class ShotModel : PFObject, PFSubclassing {
/**
* MARK: Properties
*/
@NSManaged var name: String
@NSManaged var pics: [PicModel]
override class func initialize() {
var onceToken : dispatch_once_t = 0;
dispatch_once(&onceToken) {
self.registerSubclass()
}
}
class func parseClassName() -> String! {
return "Shot"
}
}
import Foundation
class PicModel : PFObject, PFSubclassing {
/**
* MARK: Properties
*/
@NSManaged var name: String
override class func initialize() {
var onceToken : dispatch_once_t = 0;
dispatch_once(&onceToken) {
self.registerSubclass()
}
}
class func parseClassName() -> String! {
return "Pic"
}
}
// this cause error
var shot: ShotModel = // a shot model get with fetchInBackgroundWithBlock
shot.pics // fatal error: NSArray element failed to match the Swift Array Element type
Thanks for your time
shot
toPFObject
instead ofShotModel
then you can getshot.valueForKey("pics")
. Try once it worked for me. – Bowlershot.valueForKey("pics")
with castShotModel
but i can't downcastshot.valueForKey("pics")
to[PicModel]
– Overexert@NSManaged var pics: [PicModel]
to ` @NSManaged var pics: [PFObject]` I had same issue solved it by casting toPFObject
– Bowlerpis as! PicModel
=>Could not cast value of type 'PFObject' to 'PicModel'
... – Overexert