Получение ARC-предупреждения о сильном захвате объекта - PullRequest
3 голосов
/ 23 ноября 2011

Я использую ARC и получаю предупреждение: 1001 *

__block ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:url];
[request setCompletionBlock:^{
        NSString *responseString = [request responseString];
        self.appointmentArray = [responseString JSONValue];
    }];
    [request setFailedBlock:^{
        NSError *error = [request error];
        NSLog(@"%@", error.description);
    }];

Ответы [ 2 ]

9 голосов
/ 23 ноября 2011

Я предполагаю, что request объявлено где-то перед блоками.Вам нужно объявить его как __weak или задать для него вторую слабо объявленную переменную.

Этот вопрос аналогичен.Попробуйте это:

__block ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:url];
__weak ASIHTTPRequest *request_b = request;
[request setCompletionBlock:^{
    NSString *responseString = [request_b responseString];
    self.appointmentArray = [responseString JSONValue];
}];
[request setFailedBlock:^{
    NSError *error = [request_b error];
    NSLog(@"%@", error.description);
}];
6 голосов
/ 27 декабря 2011

Простая замена:
__ block ASIFormDataRequest * request = [[ASIFormDataRequest alloc] initWithURL: url];

с:
__ слабым ASIFormDataRequest * request = [[ASIFormDataRequest alloc] initWithURL: url];

будет достаточно.

...