2012-09-06 4 views
0

Я разрабатываю приложение, которое должно искать строку внутри данных Plist и возвращать значение, которое должно подсказывать пользователю, что это за бренд. Например, пользователь вводит «iPhone» в текстовое поле, и приложение должно вернуть бренд продукта, введенный пользователем после нажатия кнопки «Перейти» под текстовым полем.Поиск в массивах внутри Plist в Xcode

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

Apple: iPhone, IPod, IPAD, Mac Sony: PSP, PS3, Bravia, Xperia Samsung: Galaxy S II, Galaxy S III, Galaxy Tab

Как я могу это сделать? Я уже работал над своим приложением, но без использования plist. Я просто хочу использовать Plist для приложения, которое будет легко поддерживаться и обновляться.

+0

Проверить этот вопрос: http://stackoverflow.com/questions/1067167/reading-data-from- a-plist-file –

ответ

0

Рассмотрим файл PLIST называется data.plist, это то, как вы должны сделать это:

NSBundle *bundle = [NSBundle mainBundle];  
NSString *pListpath = [bundle pathForResource:@"data" ofType:@"plist"]; 
NSDictionary *dictionary = [[NSDictionary alloc] initWithContentsOfFile:pListpath]; 

for (NSString* key in [dictionary allKeys]){ 
    NSArray *array = [dictionary objectForKey:key]; 
    for (int j = 0; j < [array count]; j++) { 
     if ([[array objectAtIndex:j] isEqualToString:@"iPhone"]) { 
      NSLog(@"%@",key); 
     } 
    } 
} 
+1

В этом случае для iPhone ответ на запрос - это Apple. –

+0

Спасибо за это Биджой Тхангарай. Попробуй это и примите свой ответ, если он сработает. :) – jaytrixz

+0

Он работает точно так, как мне было нужно. Еще раз спасибо! :) – jaytrixz

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