2014-08-28 42 views
3

我的应用在iOS7上正常工作,但在iOS8上崩溃。“固定”发送到实例的奇怪“无法识别的选择器发生崩溃发生在iOS8 beta5

我见过关于这个主题的各种问题,但从来没有找到一个好的解决方案。

我有一个应用程序使用UITableViewController和UITableViewController有一个SearchDisplayController实例调用m_searchDisplayController。

当首先,我点击搜索栏上搜索某些内容,表视图,则显示的结果,而搜索栏resignFirstResponder.But我再次点击搜索栏,应用程序崩溃的:

-[MyFavoritesViewController _searchController]: unrecognized selector sent to instance 

这里是堆栈:

enter image description here

然后我尝试_searchController方法添加到MyFavoritesViewController类,像这样:

- (UISearchDisplayController *)_searchController 
{ 
     return nil; 
} 

然后应用工作,除了搜索栏的文本框确定不能inputing.So我试试这个:

- (UISearchDisplayController *)_searchController 
{ 
     return m_searchDisplayController; 
} 

而另一坠毁的消息显示:

-[UISearchDisplayController _searchBarShouldFinalizeBecomingFirstResponder]: unrecognized selector sent to instance 

我不知道如何定位错误代码,并且任何人都有解决方案?提前致谢。

我的情况:

我做的UISearchBar一些黑客,我改变搜索栏的文本框的一些object.Originally的代表,系统的“_searchController”方法将调用委派搜索栏的文本框,但现在,它会打电话给我的对象,然后崩溃。我希望它有帮助。

+0

显示堆栈跟踪。 – trojanfoe 2014-08-28 08:52:46

+0

这是堆栈跟踪。 – ylovesy 2014-08-28 09:25:05

+0

我找到解决方案。因为我做了一些导致崩溃的黑客攻击。 – ylovesy 2014-08-28 12:09:09

回答

0

如果您尝试通过将委托分配给UISearchBar textField来响应正在轻敲的清除按钮,则会在iOS8中暂停。尝试另一种技术。

也许UISearchBarDelegate的方法现在

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 
{ 
    // fired whenever the text is changed, or clear tapped 
    if (searchText.length == 0) { 
     // Do something 
    } 
} 

如果你需要不同的到最后退格键响应,那么你将不得不围绕人物的一些工作,如响应退格键,或添加一个不可见的字符退格不能删除,但清除会删除。这些只是2个建议。

0

我有同样的问题。 使用SDK 8.0+编译项目,问题将消失。 无需更改代码。

另一种解决方案,不要分配UISearchBar委托中的UITextField和附加功能(如果有的话)移动到其他位置。

相关问题