Я начинаю играть с ARC, и одним из первых экспериментов, которые я пытался, было сделать HTTP-вызов URL-адреса и вернуть некоторые данные. Конечно, код статуса HTTP очень важен для меня, поэтому я решил перейти к "goto" с помощью sendSynchronousRequest
, например:
NSError *error = [[NSError alloc] init];
NSHTTPURLResponse *responseCode = nil;
NSData *oResponseData = [NSURLConnection sendSynchronousRequest:request returningResponse:responseCode error:error];
С поддержкой ARC я получаю ошибки компилятора и предупреждения в этой последней строке.
Ошибки
Неявное преобразование указателя Objective-C в 'NSURLResponse * __ autoreleasing * 'запрещен ARC
Неявное преобразование указателя Objective-C в 'NSError * __ autoreleasing * 'запрещен ARC
file://localhost/Users/jason/Projects/test/Data/DataService.m: ошибка: Автоматическая ошибка подсчета ссылок: неявное преобразование Objective-C указатель на 'NSURLResponse * __ autoreleasing *' - запрещено ARC
file://localhost/Users/jason/Projects/test/Data/DataService.m: ошибка: Автоматическая ошибка подсчета ссылок: неявное преобразование Objective-C указатель на 'NSError * __ autoreleasing *' не разрешен ARC
Предупреждения
Несовместимые типы указателей, отправляющих 'NSHTTPURLResponse * _strong' to параметр типа "NSURLResponse" _autoreleasing * '
Несовместимые типы указателей, отправляющие 'NSError * _strong' в параметр type 'NSError * _autoreleasing *'
Из того, что я могу сказать, эта ссылка передается, но я не уверен, что правильный способ решить эту проблему. Есть ли "лучший" способ выполнить аналогичную задачу с ARC?