2016-07-14 2 views
3

Я использую ObjectMapper.framework в быстром и успешно отображенном все значение. Это мой кодКак проверить ключ данных в нижнем ответе?

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"] 


} 
} 

и вот мой ответ, который я сопоставляюсь

{ 
    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"; 
}, 

я получаю это значение этого кода

var arrOperation: [CompetitionListModel] = [] 

и получать значения из arrOperation этой Печати (self.arrOperation [0] .data)

, но вы можете видеть в ответе этот ключ данных не присутствует несколько раз в этом ответе и несколько раз его присутствует. Так что я должен проверить, что ключ данных присутствует или нет, но я отобразил этот ключ, который всегда присутствует в классе модели. поэтому я проверяю по этому коду

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

    } 

, но ключ данных всегда присутствует в классе модели, его значение для печати nil. Поэтому, пожалуйста, дайте мне понять, как определить, что ключевое имя данных присутствует в массиве или нет.

ответ

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

    } 
} 

Пробуйте этот код. Для моего словаря, который имеет в нем ключ данных, этот код отлично работает

+0

self.arrOperation также является объектом класса модели, пожалуйста, посмотрите мой код, и я сделал то же самое для этого, если пусть keyExists = self.arrOperation [indexPath.row] .data { печати («ключ присутствует») } еще { печати («ключ нет») } – IOSDev

+0

Поскольку вы используете простой массив, но я использую модель класс массив, который всегда есть ключ данных. Пожалуйста, загляните в мой код выше, вы получите всю информацию. – IOSDev

+0

У вас есть тип NSArray. Измените его на Array тип –

Смежные вопросы