2017-03-08 1 views
0

J'ai une classe ObjectMapper personnalisée. Je souhaite mapper l'élément à différents types d'objet en fonction des données. J'ai implémenté la logique comme ci-dessous. Mais ça ne me donne pas les valeurs, seulement null.Élément entier de mappage conditionnel ObjectMapper

class FeedObject : Object, Mappable { 

    dynamic var post : HomeDataModel? 
    dynamic var friends : Friends? 

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

    func mapping(map: Map) { 
     var Mtype = "" 
     Mtype <- map["type"] 
     print("TYPEEEEEE", Mtype) 

     if Mtype == "FRIENDS" { 
      friends <- map 
     } 
     else { 
      post <- map 
     } 
    } 
} 

Comment puis-je implémenter ce type de mappage?

échantillon JSON -

{ "feed_objects": [ { "type": "NORMAL", "status": "none", "invited": false, "comment": "hello", "time": "00:12" }, { "type": "NORMAL", "status": "none", "invited": true, "comment": "How are you?", "time": "04:15" }, { "type": "FRIENDS", "display_text": "Your friends are here.", "count": 23 }, { "type": "NORMAL", "status": "verified", "invited": true, "comment": "great", "time": "09:32" }] }

+0

Pouvez-vous partager une réponse JSON? –

+0

@anilkukdeja a ajouté un échantillon json –

+0

S'il vous plaît consulter ma réponse. –

Répondre

0

Je pense que vous devez stocker tout l'objet de tableau.

Passons maintenant à votre méthode d'analyse de service Web où vous obtenez une réponse.

if let responseValue = response.result.value as? [String:AnyObject]{ 
    if let feedObject = Mapper<Feed>().mapArray(JSONArray:data){ 
      print(feedObject) 
    } 
} 

Définir votre classe de flux est quelque chose comme ceci. Après cela, vous pouvez parcourir votre objet tableau et comparer les types. Faites-moi savoir si vous avez besoin d'aide supplémentaire.

+0

J'ai également préparé la démo de seprate pour ceci. Faites-moi savoir si vous avez besoin d'une démo. –