У меня есть следующие строки:Разницы между доступом к данным с помощью индексации и используя только valueForKey в NSDictionary
_driverName.text = [[[responseDictionary valueForKey:@"response" ] valueForKey:@"driverinfo"]valueForKey:@"name"];
Но я думаю, что я могу сжать эту линию, используя подписку таким образом:
_driverName.text = responseDictionary[@"response" ][@"driverinfo"][@"name"];
это кажется более чистым и читаемым. Можно ли применить этот синтаксис без побочных последствий? заблаговременно
Не используйте 'valueForKey:', если вы специально не используете кодирование с ключом. Всегда используйте 'objectForKey:', чтобы получить нормальное значение из словаря. – rmaddy
Теоретически, если responseDictionary [@ "response"] не является словарем, вторая строка будет разбиваться, а первая будет возвращать нуль или даже некоторое значение, если есть экземпляр подкласса NSObject с указанными свойствами – alexburtnik