2013-02-25 62 views
0

我正在为学校开展一个项目,我想知道是否有一种方法可以在用户提交内容时实际更新与NSURLConnection的连接。例如,我使用基于用户名的twitter搜索,并在视图加载时设置了默认的用户名。当用户在该页面上输入不同的用户名时,我需要做些什么来刷新连接?我有我的按钮处理程序的所有设置,并使用我的viewDidLoad函数中相同的代码。有没有方法调用或什么会真正重置连接?如何刷新与NSURLConnection的连接

感谢,

大卫

回答

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 
} 
+0

谢谢你的建议。我取消了按钮上的旧连接,没有请求和连接,并重新启动它,但仍然无法工作。 – DaveyDaVinci 2013-02-25 05:04:10

+0

我真的想出了代码中哪里不工作。我在connectionDidFinishLoading末尾设置的解析器实际上并未启动。 – DaveyDaVinci 2013-02-25 05:14:05

+0

它第一次运行,但没有按下按钮的后续时间 – DaveyDaVinci 2013-02-25 05:14:22

0

我不认为你可以 “重启” 的连接。你将不得不提出新的要求。在你点击按钮的方法中,只需用新的用户名进行新的请求调用。 它在浏览器中的工作方式类似于请求,当您更改浏览器发送的新请求到网络服务器的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

+0

Nanako, 谢谢你看看它。我有我的按钮按下来删除旧的请求和连接,并建立新的。它还会重新计算并重新加载我正在使用的表视图,但它仍然不会启动新的连接。 = / – DaveyDaVinci 2013-02-25 04:58:59