我正在为学校开展一个项目,我想知道是否有一种方法可以在用户提交内容时实际更新与NSURLConnection的连接。例如,我使用基于用户名的twitter搜索,并在视图加载时设置了默认的用户名。当用户在该页面上输入不同的用户名时,我需要做些什么来刷新连接?我有我的按钮处理程序的所有设置,并使用我的viewDidLoad函数中相同的代码。有没有方法调用或什么会真正重置连接?如何刷新与NSURLConnection的连接
感谢,
大卫
我正在为学校开展一个项目,我想知道是否有一种方法可以在用户提交内容时实际更新与NSURLConnection的连接。例如,我使用基于用户名的twitter搜索,并在视图加载时设置了默认的用户名。当用户在该页面上输入不同的用户名时,我需要做些什么来刷新连接?我有我的按钮处理程序的所有设置,并使用我的viewDidLoad函数中相同的代码。有没有方法调用或什么会真正重置连接?如何刷新与NSURLConnection的连接
感谢,
大卫
我附件中的例子代码
// member variable 'conn'
// NSURLConnection *conn;
// @property(strong, nonatomic) NSURLConnection *conn;
-(void)viewDidLoad {
[super viewDidLoad];
[self sendRequest];
}
- (IBAction)sendButtonClicked {
[self sendRequest];
}
- (void)sendRequest {
if (self.conn) {
[self.conn cancel];
self.conn = nil;
}
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]];
NSURLConnection *conn = [NSURLConnection connectionWithRequest:request delegate:self];
self.conn = conn;
[conn start];
}
// NSURLConnection Delegates
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
// append received data
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
// error handling
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
// using data
}
我不认为你可以 “重启” 的连接。你将不得不提出新的要求。在你点击按钮的方法中,只需用新的用户名进行新的请求调用。 它在浏览器中的工作方式类似于请求,当您更改浏览器发送的新请求到网络服务器的url中的某些参数时。
有由苹果,看看这个例子(如果你不需要缓存部分只注重URLCacheConnection.h/.M)http://developer.apple.com/library/ios/#samplecode/URLCache/Listings/Classes_URLCacheController_m.html#//apple_ref/doc/uid/DTS40008061-Classes_URLCacheController_m-DontLinkElementID_10 我
Nanako, 谢谢你看看它。我有我的按钮按下来删除旧的请求和连接,并建立新的。它还会重新计算并重新加载我正在使用的表视图,但它仍然不会启动新的连接。 = / – DaveyDaVinci 2013-02-25 04:58:59
谢谢你的建议。我取消了按钮上的旧连接,没有请求和连接,并重新启动它,但仍然无法工作。 – DaveyDaVinci 2013-02-25 05:04:10
我真的想出了代码中哪里不工作。我在connectionDidFinishLoading末尾设置的解析器实际上并未启动。 – DaveyDaVinci 2013-02-25 05:14:05
它第一次运行,但没有按下按钮的后续时间 – DaveyDaVinci 2013-02-25 05:14:22