Xcode Obj-C: сделать новый NSArray из одного ключа каждый из массива словарей - PullRequest
1 голос
/ 23 апреля 2010

На самом деле это может быть многочастный вопрос. Но вот первая часть ...

У меня есть массив (на самом деле в plist) словарей. В каждом словаре есть 3 ключа: (название), (точки) и (описание).

Я пытаюсь создать НОВЫЙ массив со значениями ключа "title" из каждого словаря в этом первом массиве.

Позвольте мне объяснить, ПОЧЕМУ я делаю это, и, возможно, это даст лучшее объяснение по всему.

Я пытаюсь позволить людям выбирать из заранее определенного списка. Черт, если бы это была веб-страница, это было бы очень просто, потому что все, что меня действительно волнует, это «точки» и «заголовок». На веб-сайте я мог бы просто сделать выпадающее поле со списком, где «точки» - это значение, а заголовок - текст для каждой строки.

Но это не веб-страница.

Итак, что я пытаюсь сделать, это вывести модальное средство выбора, когда они щелкают текстовое поле. Модальное средство выбора показывает упорядоченные в алфавитном порядке "заголовки" из нашего нового массива. И какой бы из них они ни выбрали, он закрывает модальное представление и присваивает этот текст «заголовка» для UITextField, который не может быть отредактирован пользователем.

У меня есть какой-то код, чтобы мой модальный пикап выскочил. Но мне нужно передать ему массив только «заголовков» каждого словаря в моем реальном массиве.

1 Ответ

3 голосов
/ 23 апреля 2010
[array valueForKeyPath:@"title"]

Это должно вернуть новый массив с результатом вызова [obj valueForKey: @ "title"] для каждого объекта в массиве.

В этом случае вы должны иметь возможность просто использовать

[array valueForKey:@"title"]

, но если вы хотите углубиться в словарь (например, «person.name» или что-то в этом роде), версия ключа-пути очень хороша.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...