我更新我的tableView時出現問題。所以,我知道如何使用tableView實現自動填充文本字段。問題在於我的鍵盤輸入不如我想要的那麼順利。流程如下所示:當我輸入3個字符時,我的異步服務器方法被調用。它的響應對象返回我搜索到的地址。但問題是,當我輸入時,只需半秒鐘,我什麼都不能做,我需要等到加載結果。我想知道用dispatch_group_t
解決它,但我需要進入和離開異步,然後在通知方法實際上更新我的用戶界面。這是代碼:自動完成UITextField異步更新UITableView
if (string.length == 0 && range.length > 0) {
if (newText.length >= 3) {
dispatch_async(dispatch_get_main_queue(), ^{
[Address getAddreses:newText city:[City getDefaultCity] location:self.lockedPosition block:^(NSError *error, NSArray *addresses) {
self.suggestedAddresses = addresses;
if (addresses.count < AUTOCOMPLETE_RESULTS_MAX) {
self.sugesstedAddressesMaxResult = self.suggestedAddresses;
}
else {
self.sugesstedAddressesMaxResult = [addresses subarrayWithRange:NSMakeRange(0, AUTOCOMPLETE_RESULTS_MAX)];
}
[self calculateTableViewFrame:self.manualLocationInput tableViewTag:TAG];
[self.myTableView reloadData];
}];
});
}
}
我想做的事:和我一樣快可以輸入,而不是在每一個字符等待半秒更新我的UI。打字應該像輸入消息一樣,但它需要根據最新的輸入更新我的表格視圖。
您可以使用AFNetworking框架 – SukruK
我正在使用AFNetworking框架爲我的異步調用方法使用AFHTTPSessionManager – Flipper