Для программы ниже я получаю следующую ошибку:
Потенциальная утечка объекта, расположенного в строке 50.
Линия 50 указывает на эту линию--
self.receivedData = [[NSMutableData data] сохранить];
Я попытался освободить receiveData после этого оператора, но это выдает ошибку «объект высылается автосеррелом слишком много раз». Я не уверен, правильно ли я это делаю. Пожалуйста, помогите!
- (void)viewDidLoad {
NSURLRequest *theRequest =
[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://{your ip}:8080/activiti-rest/service/process-definitions?start=0&size=10&sort=id&order=asc"] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:10.0];
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
self.receivedData = [[NSMutableData data] retain];
} else {
UIAlertView *connectFailMessage = [[UIAlertView alloc] initWithTitle:@"NSURLConnection " message:@"Failed in viewDidLoad" delegate: self cancelButtonTitle:@"Ok" otherButtonTitles: nil];
[connectFailMessage show];
[connectFailMessage release];
}
[theConnection autorelease];
}
Редактировать : в заголовочном файле он объявлен как @property(nonatomic,assign) NSMutableData *receivedData;
New
Это работает после того, как я удалил эту строку [therenection autorelease]. Я сохранил свойство assign как в заголовочном файле и добавил [self.receiveData release], как вы и просили. Ранее оно не работало, потому что я сохранил эту строку [theConnection autorelease]. Я добавил ее, потому что мне было интересно, нужно ли мне освободить объектConnection также. Можете ли вы объяснить, почему это не должно быть выпущено? Он не выпущен нигде в коде, и он все еще работает ??