Обратный вызов от делегата к отправителю приводит к ошибке EXC_BAD_ACCESS - PullRequest
0 голосов
/ 21 марта 2012

Я разрабатываю приложение, которое часто использует NSURLConnection. Я хочу, чтобы контент загружался динамически, поэтому мне нужно реализовать много делегатов, чтобы это работало. Чтобы уменьшить количество делегатов, я создал класс (AbstractURLConnection), который является .

В настоящее время я использую представление входа в систему (и его контроллер), чтобы проверить поведение класса NSURLConnectionDelegate. Вот мой класс AbstractURLConnection: AbstractURLConnection

В LoginViewController я затем делаю следующее:

@interface LoginViewController : UIViewController {
    AbstractNSUrlConnection *au;
}

@property (strong, nonatomic) AbstractNSUrlConnection <NSURLConnectionDelegate> *au;

- (void) handleResponse:(NSMutableData *) data;

и в файле .m:

- (IBAction)login:(id)sender {
    NSURLRequest *req = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://myapp.dev:8887/users/login"]];
    au = [[AbstractNSUrlConnection alloc] initWithRequest:req sender:self withSelector:@"handleResponse:" andRequestMethod:[AbstractNSUrlConnection MethodTypePOST]];
}

- (void) handleResponse:(NSMutableData *) data{
     NSLog(@"called back");
}

Когда я запускаю приложение, у меня открывается окно LoginView, и когда я нажимаю кнопку входа в систему, вызывается функция login . Соединение установлено, и также вызывается метод обратного вызова (handleResponse).

Однако, когда я нажимаю кнопку входа во второй раз, я получаю ошибку EXC_BAD_ACCESS в методе handleResponse .

Я полагаю, что отправитель очищается при повторном нажатии кнопки, но я не знаю, как это решить. Есть идеи, что может вызвать это?

Заранее спасибо,

Jordy

...