Parse - 使用'includeKey'查询没有在正确的子类中获取对象

时间:2015-11-23 02:10:49

标签: swift pointers parse-platform subclass mismatch

我正在尝试获取一个Parse对象,'Pack'有一个指向另一个解析类的指针数组,'Cards'。 当我查询'Pack'并包含'includeKey(“cards”)'时,它确实会下载这些对象,但是无法将它们作为我的子类'Card'进行转换,而是默认为“PFObject”。 当试图在“包”中循环“卡片”并打印标题时,它会给我一个类型不匹配错误:

>>> (pd.read_csv('/Downloads/aaaa.csv', 
                 skiprows=2, 
                 skipinitialspace=True, 
                 sep=' ', 
                 names=['Index', 'Description',1,"1",2,'TOT'], 
                 index_col=0)
     .reset_index(drop=True)
     .dropna(axis=0, how='all'))

          Description            1         1        2      TOT
    0        DEPTH(m)         0.01      1.24     1.52      NaN
    1              BD  33kpa(t/m3)      1.60     1.60      1.6
    2         SAND(%)         42.1     42.10    65.10      NaN
    3         SILT(%)         37.9     37.90    16.90      NaN
    4         CLAY(%)         20.0     20.00    18.00      NaN
    5         ROCK(%)         12.0     12.00    12.00      NaN
    6      WLS(kg/ha)          0.0      5.00     0.10      5.1
    7      WLM(kg/ha)          0.0      5.00     0.10      5.1
    8     WLSL(kg/ha)          0.0      4.00     0.10      4.1
    9     WLSC(kg/ha)          0.0      2.10     0.00      2.1
    10    WLMC(kg/ha)          0.0      2.10     0.00      2.1
    11   WLSLC(kg/ha)          0.0      1.70     0.00      1.7
    12  WLSLNC(kg/ha)          0.0      0.40     0.00      0.4
    13    WBMC(kg/ha)          9.0   1102.10   250.90   1361.9
    14    WHSC(kg/ha)          69.   8432.00  1920.00  10420.0
    15    WHPC(kg/ha)         146.  18018.00  4102.00  22266.0
    16     WOC(kg/ha)         224.  27556.00  6272.00     34.0
    17    WLSN(kg/ha)          0.0      0.00     0.00      0.0
    18    WLMN(kg/ha)          0.0      0.20     0.00      0.2
    19    WBMN(kg/ha)          0.9    110.20    25.10    136.2
    20    WHSN(kg/ha)           7.    843.00   192.00   1042.0
    21    WHPN(kg/ha)          15.   1802.00   410.00   2227.0
    22     WON(kg/ha)          22.   2755.00   627.00   3405.0
    23    CFEM(kg/ha)           0.       NaN      NaN      NaN

检查调试器中的'pack'对象,我看到'cards'属性(数组)具有所有预期的对象,但它们显示为具有'PFObject'类。

Parse'Pack'子类:

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

获取解析对象“Pack”:

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

    static func parseClassName() -> String {
        return "Pack"
    }

    var cards: [Card] {
        get {
            return self["cards"] as! [Card]
        }
        set {
            self["cards"] = newValue
        }
    }

    ... other properties...
}

尝试打印包装卡的卡片标题:

func fetchPackWithTitle(title: String) -> Pack {
    if let query = Pack.query() {
        query.whereKey("title", equalTo:"\(title)")
        query.includeKey("cards")
        do {
            let results = try query.findObjects()
            if results.count > 0 {
                // Found it...
                return results.first as? Pack
            }
        } catch {
            return nil
        }
    }
    return nil
}

0 个答案:

没有答案