2013-09-03 2 views
7

У меня есть массив пользовательских объектов, который содержит пользовательский объект Address с свойствами street, area, state, country.Как получить значения определенного ключа из массива объектов пользовательской модели

Мне нужно получить все имена областей из этого массива, поэтому я сделал что-то вроде этого.

NSMutableArray *areas = [[NSMutableArray alloc]init]; 
    for (Address *item in addresses) { 
     [areas addObject:item.area]; 
    } 

В настоящее время области содержат все названия района.

Есть ли какой-либо другой способ получить все области элементов адреса с отсутствием цикла через массив адресов (как указано выше), используя предикаты или каким-либо другим способом.

ответ

25

Ну до тех пор, пока объект является КВЦ-совместимый для свойства зоны, то просто:

NSArray *areas = [addresses valueForKey:@"area"]; 

(Если вы хотите areas быть изменчивым, в соответствии с вашим кодом, то вам нужно использовать mutableCopy в приведенном выше заявлении).

См [NSArray valueForKey:]:

Возвращает массив, содержащий результаты вызова valueForKey: используя ключ на каждом из объектов массива.

+0

Я. своей работы. спасибо trojanfoe – vamsi575kg

+0

@Gup Обратите внимание на недавнее изменение about 'mutableCopy'. – trojanfoe

+0

NSArray * areas = [[address valueKey: @ "area"] mutableCopy]; это способ использовать mutablecopy. plese исправьте меня, если неправ – vamsi575kg

3

Также мы используем mutableArrayValueForKey: метод, чтобы получить массив значений соответствующего ключа

NSMutableArray *areas = [addresses mutableArrayValueForKey:@"name"]; 
+0

спасибо ramschoudary – vamsi575kg

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