2015-05-20 1 views
1

Я изучаю привязки в какао. Мой ArrayController связан с табличным представлением и поисковым полем. отображение данных и фильтрация в порядке. Эти свойства находятся в mutableArray.Как получить значения из NSArray после применения фильтра к NSArrayController в Cocoa

@property (nonatomic, strong) NSString *displayName; 
@property NSInteger entityID; 
@property (nonatomic, strong) NSString *MemberStatus; 

В таблице отображается «displayName». Моя основная проблема заключается в том, что мне нужно выбрать строку и запустить веб-сервис, используя «entityID» этого выбранного элемента.

Если я не фильтрую и не выбираю строку, я могу получить требуемый «идентификатор сущности» из изменяемого массива с использованием выбранного индекса строки.

[[[self.participantArray objectAtIndex:selectedRow] valueForKey:@"entityID"] integerValue] 

Всякий раз, когда я фильтруюсь, в зависимости от выбранного индекса строки он естественно возвращает неправильные значения. Как получить правильные поля? Пожалуйста помоги. Если мой вопрос непонятен, укажите, что вам нужно. спасибо.

ответ

2

В представлении таблицы отображается arrangedObjects контроллера массива. Таким образом, вы также должны указывать на это.

Вам потребуется выход на контроллер массива, так что вы можете сделать что-то вроде:.

[[[self.particpantsController.arrangedObjects objectAtIndex:selectedRow] valueForKey:@"entityID"] integerValue] 

(на самом деле я не знаю, почему вы используете -valueForKey: здесь выражение [self.particpantsController.arrangedObjects objectAtIndex:selectedRow] дает объект Если у него есть свойство entityID, вы можете просто вызвать геттер на этом объекте. Если это NSDictionary, тогда вы должны предпочесть -objectForKey: по сравнению с -valueForKey:. Ну, на самом деле, вам следует предпочесть создать класс реальной модели объекта и использовать это вместо NSDictionary Создание словарей имеет тенденцию хорошо работать в игрушечных приложениях и прототипировании, но быстро показывает свои пределы.)

+0

Спасибо, Кен Томасы, которые работали :) – Bobby

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