2016-07-14 4 views
3

ich in schnellen bin mit ObjectMapper.framework und kartiert erfolgreich alle Werte. Das ist mein CodeWie zu prüfen, Datenschlüssel ist in der folgenden Antwort vorhanden?

class CompetitionListModel: Mappable { 
var active: Int? 
var channel: String? 
var competition_type_id: Int? 
var country_id: Int? 
var created_at: [String: String]? 
var ends_at: String? 
var id: Int? 
var name: String? 
var logo: String? 
var order: Int? 
var parent: Int? 
var updated_at: String? 
var data: [AnyObject]? 


required init?(_ map: Map) { 
    mapping(map) 
} 

func mapping(map: Map) { 
    active <- map["active"] 
    channel <- map["channel"] 
    competition_type_id <- map["competition_type_id"] 
    id <- map["id"] 
    country_id <- map["country_id"] 
    created_at <- map["created_at"] 
    ends_at <- map["ends_at"] 
    name <- map["name"] 
    logo <- map["logo"] 
    order <- map["order"] 
    parent <- map["parent"] 
    updated_at <- map["updated_at"] 
    data <- map["data"] 


} 
} 

und hier ist meine Antwort, die ich

{ 
    active = 1; 
    channel = fieldhockey; 
    "competition_type_id" = 2; 
    "country_id" = 2; 
    "created_at" = "2014-09-19T14:45:43"; 
    "ends_at" = "2099-09-19T00:00:00"; 
    id = 31; 
    logo = "cf78a0a5-9ee2-4419-87e7-90b2eacf6ff5.png"; 
    name = Fieldhockey; 
    order = "-2"; 
    parent = 0; 
    "updated_at" = "2015-09-10T09:30:33"; 
}, 
    { 
    active = 0; 
    channel = "fh-eurohockey-u18m-championship2"; 
    "competition_type_id" = 2; 
    "country_id" = 2; 
    "created_at" = "2015-07-02T18:03:50"; 
    data =   { 
    }; 
    "ends_at" = "2099-12-31T00:00:00"; 
    id = 112; 
    logo = "a19945fd-a0db-485f-809d-d6078e7fbfe8.jpg"; 
    name = "EuroHockey U18 Championship II, Boys, 2015"; 
    order = "-2"; 
    parent = 31; 
    "updated_at" = "2015-09-10T09:26:56"; 
}, 

kartiert Ich erhalte diesen Wert durch diesen Code

var arrOperation: [CompetitionListModel] = [] 

und immer Wert von arrOperation dieses Drucken (self.arrOperation [0] .data)

aber Sie können in der Antwort sehen Dieser Datenschlüssel ist in dieser Antwort manchmal nicht vorhanden und manchmal auch nicht vorhanden. Also muss ich prüfen, ob der Datenschlüssel vorhanden ist oder nicht, aber ich habe diesen Schlüssel auch abgebildet, der immer in der Modellklasse vorhanden ist. also überprüfe ich diesen Code

 if let keyExists = self.arrOperation[indexPath.row].data { 
     print("key is present") 
    } 
    else{ 
     print("key is not present") 

    } 

aber Datenschlüssel immer in Modellklasse seinen Druck Nullwert vorhanden. Also bitte geben Sie mir eine Idee, wie kann ich identifizieren, dass der Schlüsselname der Daten im Array vorhanden ist oder nicht.

Antwort

3
for dict in self.arrOperation { 
    if let keyExists = dict["data"] { 
     print("key is present") 
    } 
    else{ 
     print("key is not present") 

    } 
} 

Versuchen Sie diesen Code. Für mein Wörterbuch, das einen Datenschlüssel in ihm hat, funktioniert dieser Code fein

+0

self.arrOperation ist auch ein Ziel der Modellklasse bitte meinen Code aussehen und ich habe gleich für diese Option, wenn sie keyExists = self.arrOperation [indexPath.row] .data { print („Schlüssel vorhanden ist“) } else { print („Schlüssel ist nicht vorhanden“) } – IOSDev

+0

Weil Sie einfach Array verwenden, aber ich bin mit Modellklasse-Array, das immer Datenschlüssel haben. Bitte schauen Sie in meinen Code oben, Sie erhalten alle Informationen. – IOSDev

+0

Was Sie haben, ist NSArray Typ. Ändern Sie ihn auf Array Typ –

Verwandte Themen