SBJsonParser *parser = [[SBJsonParser alloc] init];
Вы вызвали init, затем у вас есть экземпляр, и вам нужно его освободить.
NSURLRequest *request = [NSURLRequest requestWithURL:
[NSURL URLWithString:http://example.org/last/]];
Вы вызвали метод класса, который возвращает автоматически выпущенный экземпляр, который будет добавлен в опрос autorelease.
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
Авто-релиз.
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
Вы вызвали init, вам нужно будет его освободить.
NSDictionary *data_dict = [parser objectWithString:json_string error:nil];
Возвращенный экземпляр, авто-релиз.
Таким образом, вам просто нужно освободить два из них:
[parser release];
[json_string release];
, если NSDictionary *data_dict = [[NSDictionary alloc] init]
, тогда вам нужно будет автоматически выпустить его самостоятельно: соглашение заключается в том, что любой экземпляр, возвращаемый методом, автоматически выпускается.
Кстати, автоматически выпуская его, вы убедитесь, что он будет доступен до тех пор, пока не будет очищен пул автоматического выпуска (если только вы не вызываете его).
Для автоматического выпуска:
return [data_dict autorelease];