Я создаю представление «учетная запись» для приложения, поддерживающего JSON API, поддерживаемого iOS. У меня есть что-то вроде этого, чтобы заполнить все поля, основываясь на результатах API (где results
является NSDictionary из JSON):Наиболее эффективный способ заполнения набора UITextFields
self.nameField.text = [results objectForKey:@"name"];
self.emailField.text = [results objectForKey:@"email"];
self.websiteField.text = [results objectForKey:@"website"];
self.phoneField.text = [results objectForKey:@"phone"];
Это работает, но я получаю сообщение об ошибке, если какой-либо из results
являются NSNull
, Я мог бы обернуть каждый из них в качестве if
заявление, вот так ...
if (![[results objectForKey:@"name"] isKindOfClass:[NSNull class]]) {
self.nameField.text = [results objectForKey:@"name"];
}
... но мне кажется, что там должен быть менее многословным и более эффективный способ сделать это. У меня есть около 10 полей для заполнения, и 30 строк кода, чтобы сделать это, кажется смешным.
Я знаю, что мог бы создать вспомогательный метод для этого, но, безусловно, Apple или кто-то еще это уже рассмотрел? Есть ли более эффективный способ справиться с этим сценарием?
'results [@" name "]' всегда будет не нулем. – rmaddy
@maddy, почему результаты [@ "name"] всегда будут nil? Если в словаре результатов не содержится ключ @ "name", он действительно должен возвращать нуль. –
@ DuncanC Я сказал «не-ноль», а не «ноль». Вы не можете поместить 'nil' в' NSDictionary'. Как утверждает OP, он содержит объекты NSNull. Большая разница. – rmaddy