Я создаю класс, который обрабатывает запросы NSURLConnection. Чтобы другие классы могли использовать этот класс, я бы хотел, чтобы основной класс вызывал делегат при срабатывании connectionDidFinishLoading.
Я просмотрел много документации, но не могу найти ничего, что дает какие-либо четкие примеры, и код, который у меня есть, по какой-то причине не вызывает делегата. Код, который у меня пока есть (код не имеет значения удален):
Интерфейс:
@interface PDUrlHandler : NSObject {
id delegate;
}
- (void)searchForItemNamed:(NSString *)searchQuery;
@property (nonatomic, assign) id delegate;
@end
@interface NSObject (PDUrlHandlerDelegate)
- (void)urlHandler:(PDUrlhandler*)urlHandler searchResultsFinishedLoading:(NSDictionary *)resultData;
@end
Реализация:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"Fininshed Loading...");
resultData = [self parseJSON:jsonData];
if(delegate && [delegate respondsToSelector:@selector(urlHandler:searchResultsFinishedLoading:)]) {
NSLog(@"Delegating!");
[delegate urlHandler:self searchResultsFinishedLoading:resultData];
} else {
NSLog(@"Not Delegating. I dont know why.");
}
}
Представитель другого класса:
- (void)urlHandler:(PDUrlhandler*)urlHandler searchResultsFinishedLoading:(NSDictionary *)resultData;
{
NSLog(@"Delegating!!!!");
}