2013-02-13 5 views
0

У меня есть несколько массивов, содержимое которых выбрано из db.I хочу совместить текст, который я ввел в 'searchTextField', с содержимым этого массива, которое берется из БД.Соответствующее значение текстового поля с содержимым массива в объекте c

Например: мой массив содержит myArray={'bat man','bat and ball','ball'}; , если я вошел «летучая мышь» в «searchTextField»; он должен отображать индекс совпадающего текста в массиве (в этом случае индекс 0 и 1).

Как я могу добиться этого .. Жду вашей помощи ..

+0

Попробуйте что-нибудь с tableSearch: https://developer.apple.com/library/ios/#samplecode/TableSearch/Introduction/Intro.html –

ответ

4
NSMutableArray *tempArray = [NSMutableArray arrayWithObjects:@"bat man",@"bat and ball",@"ball", nil]; 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] 'bat'"]; 
NSArray *result = [tempArray filteredArrayUsingPredicate:predicate]; 

result массив будет содержащий отфильтрованные объекты, оттуда вы можете получить индекс как:

[ tempArray indexOfObject:/объект из массива результатов один за другим /]

contains[c] означает, что поиск будет нечувствительным к регистру. Более подробную информацию по предикатам: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pUsing.html

EDIT

установить делегат текстовое поле в качестве собственной личности. До этого перейдите в YourFile.h, добавьте UITextFieldDelegate. Теперь в textFieldShouldReturn сделать это:

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    [textField resignFirstResponder]; 

    NSMutableArray *tempArray = [NSMutableArray arrayWithObjects:@"bat man",@"bat and ball",@"ball", nil]; 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",textField.text]; 
    NSArray *result = [tempArray filteredArrayUsingPredicate:predicate]; 

    return YES; 
} 
+0

uthanx очень много !!!! u дал ясно –

+0

уверенная вещь, вы радушны :) – croyneaus4u