Долгосрочный lurker, первый раз постер.Функции делегата, не называемые
Я создаю модуль ServerConnection, чтобы сделать его очень модульным и простым, но мне трудно получить вызов делегата. Я видел еще несколько таких вопросов, но ни один из ответов не устранил мою проблему.
ServerConnection настроен как протокол. Таким образом, объект ServerConnection создается в Login.m, который вызывает вызов на сервере, а затем добавляет методы делегирования в 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 довольно сильно, и сравнил их как много раз, но не могу найти какое-либо несоответствия.
Любая помощь была бы принята с благодарностью.
Большое спасибо за это. Он пропускал 'self.delegate = theDelegate;' в этой функции '- (ID) initWithURL: (NSString *) theURL Withdata: (NSString *) theData делегат: (идентификатор) theDelegate; { ' –
user426140