2017-07-31 3 views
0

私は自分のコレクションから手を出そうとしているオブジェクトの配列を持っています。私は彼らのドキュメントといくつかのグーグルを使って一緒に従ってきました。私は解決に近いと信じていますが、十分に近いものではありません。ここでは、私が持っているものです。Kinveyでオブジェクトマッピングを使用する

class Clothing: Entity { 

    var categories: [Category]! 
    var gender: String! 

    override class func collectionName() -> String { 
    //return the name of the backend collection corresponding to this entity 
     return "categories" 
    } 

    override func propertyMapping(_ map: Map) { 
     super.propertyMapping(map) 

     categories <- map["clothing"] 
     gender <- map["gender"] 

    } 
} 


class Category: NSObject, Mappable{ 

    var title: String? 
    var image: String? 

    convenience required init?(map: Map) { 
     self.init() 
    } 

    func mapping(map: Map) { 
     title <- map["category"] 
     image <- map["image"] 
    } 
} 

私は右の性別を取得することができるんだけど、カテゴリの配列は、Categoryオブジェクトにマッピングされ得るように見えることはありません。何かご意見は?

答えて

0

https://devcenter.kinvey.com/ios/guides/datastore#Modelに表示されているように、お客様のモデルには実際に問題が1つあります。の代わりにvar categories: [Category]!を使用してください。

import Kinvey 

class Clothing: Entity { 

    let categories = List<Category>() 
    var gender: String! 

    override class func collectionName() -> String { 
     //return the name of the backend collection corresponding to this entity 
     return "clothing" 
    } 

    override func propertyMapping(_ map: Map) { 
     super.propertyMapping(map) 

     categories <- ("categories", map["categories"]) 
     gender <- ("gender", map["gender"]) 

    } 
} 

class Category: Object, Mappable{ 

    var title: String? 
    var image: String? 

    convenience required init?(map: Map) { 
     self.init() 
    } 

    func mapping(map: Map) { 
     title <- ("category", map["category"]) 
     image <- ("image", map["image"]) 
    } 
} 

、ここではサンプルコードは

let casualCategory = Category() 
casualCategory.title = "Casual" 

let shirtCategory = Category() 
shirtCategory.title = "Shirt" 

let clothing = Clothing() 
clothing.gender = "male" 
clothing.categories.append(shirtCategory) 
clothing.categories.append(casualCategory) 

dataStore.save(clothing) { (result: Result<Clothing, Swift.Error>) in 
    switch result { 
    case .success(let clothing): 
     print(clothing) 
    case .failure(let error): 
     print(error) 
    } 
} 
+0

はそんなにありがとう新しいClothingオブジェクトを保存する方法は次のとおりです。ここでは、テストと働いていたモデルです!実際に私のコレクションの多くがこれによって変更されましたが、今や私が元々嘲笑したものに戻すことができます。 –

関連する問題