Tôi có UISearhBarController trong ứng dụng của mình. Nó hiện đang tìm kiếm một cơ sở dữ liệu trực tuyến, nhưng thay vào đó tôi đang thay đổi nó để tìm kiếm một cơ sở dữ liệu lõi. hiện của nó sử dụng mã này:Sử dụng NSFetchedResultsController đến với 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;
}
Vì vậy, tôi có thiết lập cơ sở dữ liệu trong dữ liệu cốt lõi đã có, tôi chỉ cần treo lên các điều khiển tìm kiếm/NSFetchedResults với nó. Bất kỳ cách dễ dàng để làm như vậy?
Tôi không đồng ý. Ở đâu nó nói thay đổi vị ngữ là "không phải là cách được đề nghị để làm điều đó"? Dễ dàng hơn và sạch hơn để cập nhật vị từ 'NSFetchRequest' và thực hiện tìm nạp mới. Có nhiều 'NSFetchedResultsControllers' không có ý nghĩa. – gschandler
Bạn đúng, tôi đã nghĩ đến khi có hai tập dữ liệu riêng biệt liên quan, khi tập dữ liệu không thay đổi và chỉ có biến vị ngữ là, một FRC sẽ hoạt động tốt. –
Giải pháp đơn giản và hiệu quả! – Giovanni