0
我嘗試了一整天,但搜索顯示委託方法的方法不起作用。如何實現在詞典plist中搜索字符串?
我有一個tableview加載plist,我試圖實現搜索功能。
這裏是我的代碼
#import "TabelViewController.h"
#import "Cell.h"
@interface TabelViewController()
@property (nonatomic,copy) NSDictionary *names;
@property (nonatomic,copy) NSArray *keys;
@property (nonatomic,copy) NSArray *FIOArray;
@property (nonatomic,copy) NSMutableArray *filtredNames;
@property (nonatomic,copy) UISearchDisplayController *searchController;
@end
方法正確dosent工作。 我不知道如何從我的plist正確加載字典來實現搜索
-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString{
[filtredNames removeAllObjects];
if (searchString.length > 0) {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [search] %@", self.searchBar.text];
for (NSString *key in keys){
NSArray *matches = [names[key] filteredArrayUsingPredicate:predicate];
[filtredNames addObjectsFromArray:matches];
}
}
return YES;
}
的plist結構
<plist version="1.0">
<dict>
<key>А</key>
<array>
<dict>
<key>ФИО</key>
<string>Аетров А.В.</string>
<key>Доклад</key>
<string>Доклад 5</string>
<key>Время</key>
<string>10:00-10:30</string>
<key>День</key>
<string>Четверг</string>
</dict>
</array>
Thx但它也可以工作。我認爲我在這一行中的錯誤'NSPredicate * predicate = [NSPredicate predicateWithFormat:@「SELF contains [search]%@」,self.searchBar.text]; for(NSString * key in keys){ NSArray * matches = [names [key] filteredArrayUsingPredicate:predicate]; [filtredNames addObjectsFromArray:matches]; } ' –
@Анвар,只是複製整個' - (布爾)searchDisplayController:'方法從我的答案,和代碼,也加載plist到字典了。它的工作,我檢查了它。因爲在你的情況,並看到代碼中'鍵'數組的值,所以如果你不這樣做 - 它不會工作! –
我與 爲做到了(的NSString *中的鍵鍵){ FIOArray = [名稱[鍵] valueForKey:@ 「ФИО」]; 的NSArray *匹配= [FIOArray filteredArrayUsingPredicate:謂詞]; [filtredNames addObjectsFromArray:matches]; 對不起,你的時間 –