Raj*_*Raj 7 web-services asynchronous-wcf-call ios sendasynchronousrequest
我是ios编程的新手,需要实现类似谷歌搜索框的东西,即自动填充文本字段.我的场景如下1.当用户在文本字段中键入时2.background调用webservice获取数据(请求数据=文本字段数据).
例如: - 如果用户在Web服务调用的文本字段请求数据中键入"abc"应为"abc",并且Web服务对此进行响应.现在下次用户输入"d"即textfield包含"abcd"服务响应时必须考虑附加文本.(类似谷歌搜索字段)3.web服务调用应该是异步的.4.response应显示在下拉列表中.
有可能在ios ??? 任何教程或示例将不胜感激.提前致谢.
我假设您正在谈论 Restful Web 服务而不是 SOAP,看在上帝的份上!
是的,当然有可能。您可以遵循这种方法,我可以使用 HTTP 库(例如AFNetworking)来发出请求,但为了简单起见,我只是在后台使用 URL 的内容初始化 NSData 并使用GCD在主线程上更新 UI 。
将您的 UITextField 委托设置为您正在处理的 ViewControllerviewDidLoad:方法
textField.delegate = self;
Run Code Online (Sandbox Code Playgroud)重写UITextField委托方法textField:shouldChangeCharactersInRange:replacementString::
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
// To increase performance I advise you to only make the http request on a string bigger than 3,4 chars, and only invoke it
if( textField.text.length + string.length - range.length > 3) // lets say 3 chars mininum
{
// call an asynchronous HTTP request
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSURL * url = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"http:/example.com/search?q=%@", textField.text]];
NSData * results = [NSData dataWithContentsOfURL:url];
NSArray * parsedResults = [NSJSONSerialization JSONObjectWithData: results options: NSJSONReadingMutableContainers error: nil];
// TODO: with this NSData, you can parse your values - XML/JSON
dispatch_sync(dispatch_get_main_queue(), ^{
// TODO: And update your UI on the main thread
// let's say you update an array with the results and reload your UITableView
self.resultsArrayForTable = parsedResults;
[tableView reloadData];
});
});
}
return YES; // this is the default return, means "Yes, you can append that char that you are writing
// you can limit the field size here by returning NO when a limit is reached
}
Run Code Online (Sandbox Code Playgroud)正如您所看到的,有一系列您需要习惯的概念:
dispatch_async东西)性能更新
length % 3。我建议你读一些有关这些的内容
| 归档时间: |
|
| 查看次数: |
1578 次 |
| 最近记录: |