Friday, January 25, 2013

ios - Фильтрация UITableView c данными из списка .plist http://hashcode.ru/questions/134192/ios-фильтрация-uitableview-c-данными-из-списка-plist

http://hashcode.ru/questions/134192/ios-фильтрация-uitableview-c-данными-из-списка-plist


ios - Фильтрация UITableView c данными из списка .plist


Есть таблица, заполняется она из списка *.plist, который основан на словарях (NSDictionary),
примерно такого формата:

  <array>  
   
<dict>  
       
<key>name</key>  
       
<string>Example1</string>  
       
<key>type</key>  
       
<string>1</string>  
   
</dict>
   
<dict>  
       
<key>name</key>  
       
<string>Example2</string>  
       
<key>type</key>  
       
<string>2</string>  
   
</dict>    
</array>

Вопрос: можно ли при нажатии на одну из кнопок UISegmentedControl, отфильтровывать
таблицу и выводить только данные с типом "1"? 
П.С.: с выводом всех данных из списка проблем нет.

Ну и в качестве добавления к лаконичному "конечно можно@aknew, покажу, каким ещё способом это можно сделать:

  NSArray *array; // массив, полученный из plist'a
NSString *type = @"1";
NSArray *result = [array filteredArrayUsingPredicate:
                           
[NSPredicate predicateWithFormat:@"(type == %@)",  type]];

(iOS 3.0+, OS X 10.4+)


Хотя лично я бы заранее распихал по отдельным массивам объекты с разными типами - так должно быть быстрее, чем вытаскивать их каждый раз из одного общего.

ссылка

отвечен 6 Авг '12 16:12

VioLet's gravatar image

VioLet
1.8k112

изменен 6 Авг '12 16:19

шикарно! вечером опробую =) Тоже думал, над тем, чтоб распихать объекты с разными типами по разным массивам, скорее всего так и сделаю, спасибо за подсказку.

(6 Авг '12 16:51)Kobayashi_Maru

@Kobayashi_Maru а можно даже и не по разным - так к ним тяжелее обращаться на самом деле - а, например, в словарь, где под ключами "1""2", ... будут лежать массивы нужных вам объектов. 
Ну это уже детали, конечно.

(6 Авг '12 16:59)VioLet

воспользовался пока разными массивами, все получилось, потом со словарем попробую. Спасибо за наводку)

(6 Авг '12 23:12)Kobayashi_Maru
1

Конечно можно, я бы при нажатии на кнопку пробегал по всему массиву и выбирал нужный тип в другой массив и уже на его основании строил таблицу. Учитывая, что с таким способом хранения массив не слишком большой, не думаю что это займет много времени.

ссылка

отвечен 6 Авг '12 11:49

aknew's gravatar image

aknew
1.1k4


No comments:

Post a Comment