6
我在我的應用程序中有一個UISearhBarController。它目前正在搜索在線數據庫,但我正在更改它來搜索核心數據庫。它目前正在使用此代碼:使用NSFetchedResultsController與UISearchBar
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
if (self.billingSearchBar == searchBar) {
[self.billingSearchController filterResultsUsingString:searchText];
}
}
- (void)filterResultsUsingString:(NSString *)filterString
{
self.billingSearchText = filterString;
NSArray *billing_codes = [self billingSearch:self.billingSearchText searchType:self.billingSearchCategory];
self.displayedBillingSearch = billing_codes;
self.billingSearch = billing_codes;
[self.tableView reloadData];
}
-(NSMutableArray*)billingSearch:(NSString*)searchString searchType:(NSString*)searchType
{
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@/server/20111115/60b88126/billing_search/", [self getHost]]];
ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];
[request setPostValue:searchString forKey:@"query"];
[request setPostValue:searchType forKey:@"category"];
[request startSynchronous];
NSError *error = [request error];
NSString *responseString;
if (!error) {
responseString = [request responseString];
}
NSMutableArray *search_results = [[NSMutableArray alloc] init];
NSDictionary *responseDictionary = [responseString JSONValue];
for (id key in [responseDictionary valueForKey:@"search_results"]) {
[search_results addObject:key];
}
return search_results;
}
所以我必須在覈心數據的數據庫設置好的,我只需要搜索/ NSFetchedResults控制器掛接到它。任何簡單的方法來做到這一點?
我不同意。它在哪裏說改變謂詞「不是推薦的方法」?更容易更清晰的更新`NSFetchRequest`謂詞並執行新的獲取。有多個`NSFetchedResultsControllers`沒有意義。 – gschandler 2011-12-16 21:24:08