나는 비동기 적으로 데이터를 가져 오는거야, 나는 가이드로 이것을 사용했습니다 : http://deeperdesign.wordpress.com/2011/05/30/cancellable-asynchronous-searching-with-uisearchdisplaycontroller/NSRangeException
모든 지금
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString{
//setup request/predicate etc...
[self.searchQueue addOperationWithBlock:^{
NSError *error;
self.matchingObjects = [self.managedObjectContext executeFetchRequest:request error:&error];
[request release];
[[NSOperationQueue mainQueue] addOperationWithBlock:^
{
[self.searchDisplayController.searchResultsTableView reloadData];
}];
}];
// Return YES to cause the search result table view to be reloaded.
return NO;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
// Return the number of rows in the section.
return [self.matchingObjects count];
}
에서 다음 내가 뭔가를 얻을 수 있습니다 테이블 셀을 구성 할 때이 액세스가 matchingObjects 아이바 던져
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSArray objectAtIndex:]: index 0 beyond bounds for empty array'
: 효과
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
항상 충돌이 발생하지 않고 임의의 경우에 발생하는 것 같습니다. 나는 어딘가에 matchingObjects 배열의 개수가 변경되고 업데이트되지 않는 특정 값을 반환하고 있다고 생각합니다.
나는 이것을 어떻게 다루어야하는지 완전히 확신하지 못합니다. 몇 시간 동안 이것을보고 있었는데, 제가 빠진 것이 있습니까?