如何使用NSURLConnection刷新连接

时间:2013-02-25 02:35:10

标签: objective-c xml-parsing nsurlconnection

我正在为一所学校项目工作,我想知道如果用户提交了某些内容,是否有办法真正更新与NSURLConnection的连接。例如,我正在使用基于用户名的Twitter搜索,并且我在视图加载时设置了默认用户名。当用户在该页面上输入不同的用户名时,我需要做些什么才能刷新该连接?我已经设置了所有按钮处理程序,并且我使用的是与viewDidLoad函数相同的代码。是否有方法调用或实际重置连接的东西?

谢谢,

大卫

2 个答案:

答案 0 :(得分:0)

我附上了示例代码

// 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
}

答案 1 :(得分:0)


我认为你不能“重置”连接。您将不得不提出新的请求。在单击按钮的方法中,只需使用新用户名进行新的请求调用。 当您更改浏览器向Web服务器发送新请求的URL中的某个参数时,它就像浏览器中的请求一样工作。

通过apple看一下这个例子(如果你不需要缓存部分只关注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