我遇到了一个问题:我正在编写一个使用searchBar和tableView的应用程序。
当我点击搜索栏时,输入一些要搜索的字符串,只要我点击取消按钮,或者删除所有搜索字词并再次点击tableView我的应用程序崩溃。
当我在iOS模拟器中运行应用程序时,执行此操作时不会崩溃。
当我通过xcode在iPhone上运行应用程序时,执行此操作时不会崩溃。
我真的不了解设备日志,我想问是否有任何方法可以找出哪些内容非常错误以及为什么在通过xcode进行此操作时不会发生这种情况。请帮帮我!
PS:其中一个设备日志:(也许你们明白这一点)
something went wrong http://img804.imageshack.us/img804/4870/bugd.png
编辑:这是searchDisplayControllerDidEndSearch方法的代码:
- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller
{
[self.navigationController setNavigationBarHidden:NO animated:YES];
[UIView beginAnimations:@"DeactivateSearch" context:nil];
[UIView setAnimationDuration:0.4];
[self.attractionsTableView setFrame:CGRectMake(0, 43, 320, 362)];
[UIView commitAnimations];
NSFetchRequest *fetchRequest = [[self fetchedResultsController] fetchRequest];
[fetchRequest setPredicate:nil];
NSError *error = nil;
if (![[self fetchedResultsController] performFetch:&error]) {
// Handle error
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
[self setSearchIsActive:NO];
return;
}
更新:如果没有输入文字,搜索栏不会崩溃。因此,只需激活searchBar并在不输入的情况下停用它即可。但是,只要我输入了一个字符,停用过程就会崩溃应用程序。
答案 0 :(得分:0)
寻找动画回调问题。还有一个控制台日志,看看它。
答案 1 :(得分:0)
我自己找到了答案..
在我的一个自定义单元格中,我经常发布一些内容,因此当UISearchDisplayController为搜索结果发布UITableView时,应用程序崩溃了。