带有数组指针和Swift 1.2的PFSubclassing-致命错误:NSArray元素与Swift Array Element类型不匹配 [英] PFSubclassing with array pointer and swift 1.2 - fatal error: NSArray element failed to match the Swift Array Element type

查看:80
本文介绍了带有数组指针和Swift 1.2的PFSubclassing-致命错误:NSArray元素与Swift Array Element类型不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在swift 1.2中,我不再可以使用解析子类来检索poiter数组,而不能将其与另一个解析子类向下转换.

With swift 1.2, I can no longer retrieve an array of poiter with parse subclass and downcasting it with another parse subclass.

我总是发现错误:

fatal error: NSArray element failed to match the Swift Array Element type

您有想法吗?或者它可能会来?

Do you have an idea or it may come?

代码:

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

感谢您的时间

推荐答案

问题来自此部分代码:

override class func initialize() {
    var onceToken : dispatch_once_t = 0;
    dispatch_once(&onceToken) {
        self.registerSubclass()
    }
}

ShotModel的

registerSubclass()在PicModel的registerSubclass()之前被调用.

registerSubclass() for ShotModel is called before registerSubclass() for PicModel.

我已经在AppDelegate中解决了这个问题:

I've resolved with this in AppDelegate :

PicModel.registerSubclass()
ShotModel.registerSubclass()

这篇关于带有数组指针和Swift 1.2的PFSubclassing-致命错误:NSArray元素与Swift Array Element类型不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆