gpt4 book ai didi

ios - 输入第一个字符时 UISearchBar 不工作?

转载 作者:可可西里 更新时间:2023-11-01 04:00:48 28 4
gpt4 key购买 nike

我会在我的应用程序中实现 SearchBar 概念,但它有一个错误,当我在搜索栏中输入第一个字符时它不起作用并且 tableview 不显示相关字段并且它显示空 tableview 但我输入它显示的第二个字符tableview中的相关字段,我不知道我犯了什么错误,请帮助我。

这里我给出我的代码。

-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
NSLog(@"searching::");
if(searchBar.text.length == 0)
{
[searchDict removeAllObjects];
[arrayDict removeAllObjects];
searchDict=[[NSMutableArray alloc]init];
arrayDict=[[NSMutableArray alloc]init];
[self getJsonResponse];
[self.tableView reloadData];
} else {
[arrayDict removeAllObjects];
arrayDict=[[NSMutableArray alloc]init];
}
dispatch_async(dispatch_get_main_queue(), ^{
[self getSearchJsonResponse:searchBar.text];
NSLog(@"searchDict::%@",searchDict);
[self.tableView reloadData];
});
}

最佳答案

根据聊天中的代码,您需要彻底检查代码是否存在内存泄漏和性能问题。它到处都是。

抛开这些,进行以下更改以使您的代码有机会工作:

-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
if(searchBar.text.length == 0) {
[searchDict removeAllObjects];
[arrayDict removeAllObjects];
[self getJsonResponse];
}
else {
[arrayDict removeAllObjects];
[self getSearchJsonResponse:searchBar.text];
}
}

此外,将 [self.tableView reloadData] 包装在对 Web 服务完成 block 中主队列的调度中,如下所示:

dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});

此外,NSLog(@"SEARCHDICT::%@",searchDict); 记录了什么?有没有可能是因为您缺乏错误处理而吞没了失败的 Web 服务调用响应(例如,空的搜索栏或“我没有搜索长度 1”)?

关于ios - 输入第一个字符时 UISearchBar 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34177017/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com