ошибка "автозапуск" недоступен: недоступен в режиме автоматического подсчета ссылок

Я пытаюсь сделать HTTP-запрос и проанализировать JSON с помощью библиотеки Stig JSON. Я получаю сообщение об ошибке «autorelease недоступно: недоступно в режиме автоматического подсчета ссылок, когда я использую этот код»

NSURLRequest *request2;
request2 = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://sandbox.CompanyName.com/api/%@/users/%@/user_badges?url=CompanyName.map2.com&amount=999999999999",[information stringForKey:@"apiKey"] , [information stringForKey:@"userID"]]]];

NSURLConnection *connection2;
connection2 = [[NSURLConnection alloc] initWithRequest:request2 delegate:self startImmediately:YES];
NSURLResponse *resp2;
NSData *cData2 = [NSURLConnection sendSynchronousRequest:request2 returningResponse:&resp2 error:nil];
NSString *cDataString2 = [[NSString alloc] initWithData:cData2 encoding:NSUTF8StringEncoding];
NSLog(@"getUsersBadges called");
NSError *error4;
SBJSON *json4 = [[SBJSON new] autorelease];
// NSArray *luckyNumbers = [json objectWithString:responseString error:&error];
NSDictionary *luckyNumbers4 = [json4 objectWithString:cDataString2 error:&error4];

[cDataString2 release]; 

ОБНОВЛЕНИЕ

Для всех, кто интересуется, это правильный код: NSURLRequest * request2; request2 = [NSURLRequest requestWithURL: [NSURL URLWithString: [NSString stringWithFormat: @ "http://sandbox.CompanyName.com/api/%@/users/%@/user_badges?url=CompanyName.map2.com&amount=999999999999", [информационная строкаForKey : @ "apiKey"], [информационная строкаForKey: @ "userID"]]]];

NSURLConnection *connection2;
connection2 = [[NSURLConnection alloc] initWithRequest:request2 delegate:self startImmediately:YES];
NSURLResponse *resp2;
NSData *cData2 = [NSURLConnection sendSynchronousRequest:request2 returningResponse:&resp2 error:nil];
NSString *cDataString2 = [[NSString alloc] initWithData:cData2 encoding:NSUTF8StringEncoding];
NSLog(@"getUsersBadges called");
NSError *error4;
SBJSON *json4 = [SBJSON new];
// NSArray *luckyNumbers = [json objectWithString:responseString error:&error];
NSDictionary *luckyNumbers4 = [json4 objectWithString:cDataString2 error:&error4];

person Sam Baumgarten    schedule 15.06.2011    source источник
comment
Управление памятью сильно изменилось в iOS5 с введением автоматического подсчета ссылок. Вам нужно прочитать хорошее введение в ARC. Я рекомендую руководство Рэя Вендерлиха Маттиса Холлеманса. .   -  person Thilo    schedule 27.12.2012


Ответы (2)


Изменять

SBJSON *json4 = [[SBJSON new] autorelease];

to

SBJSON *json4 = [SBJSON new];

Это позволит вам оставить без изменений автоматический подсчет ссылок.

person Jezen Thomas    schedule 19.10.2011
comment
Отличный ответ! Я избегал проблемы, отключая автоматический подсчет ссылок. Это на самом деле показывает, как решить проблему! - person Sam Baumgarten; 28.01.2013

Чтобы избавиться от этой ошибки, перейдите в настройки сборки вашего проекта. Найдите автоматический подсчет ссылок. Как только вы найдете его, установите значение «НЕТ».

person Sam Baumgarten    schedule 03.08.2011