长时间潜伏,第一次海报。
我正在制作一个ServerConnection模块,使其变得模块化且更容易,但是在调用委托时遇到了麻烦。我已经看到了更多这样的问题,但没有一个答案解决了我的问题。
ServerConnection设置为协议。因此,在Login.m中创建一个ServerConnection对象,该对象调用服务器,然后在Login中添加委托方法以处理是否有错误或者是否已完成,这些由ServerConnection调用,如下所示。
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
if( [self.delegate respondsToSelector:@selector(connectionDidFinish:)]) {
NSLog(@"DOES RESPOND");
[self.delegate connectionDidFinish:self];
} else {
NSLog(@"DOES NOT RESPOND");
}
self.connection = nil;
self.receivedData = nil;
}
它总是“没有回应”。我已经尝试了CFRunLoop技巧(下面),但它仍然不起作用。
- (IBAction)processLogin:(id)sender {
// Hide the keyboard
[sender resignFirstResponder];
// Start new thread
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// Acutally call the server
[self authenticate];
// Prevent the thread from exploding before we've got the data
CFRunLoopRun();
// End thread
[pool release];
}
我对Apple URLCache demo进行了大量复制,并将它们进行了多次比较,但未发现任何差异。
非常感谢任何帮助。
答案 0 :(得分:2)
以下是要问的问题:
connectionDidFinishLoading:
? 如果其中任何一个是“否”,你会看到“没有回复”......所有这些都可能在你的申请中发生,但所有这些都很容易理解。