Я новичок в разработке iOS. Я сталкиваюсь с проблемами при работе с фоновым потоком. В моем коде resetUi работает в основном потоке пользовательского интерфейса. Теперь я запускаю фоновый поток для извлечения данных изображения и обновления моего изображения. Все работает нормально, но память протекает при вызове функцииSelectorInBackground.Утечка памяти при использовании performSelectorInBackground
Пожалуйста, дайте мне знать, где я делаю неправильно. Также, пожалуйста, предложите, если есть лучший способ обновить мой образ при извлечении из URL (dataWithContentsOfURL).
[Обновление]
Прибор отображает 2 отдельные утечки на один perfromSelectorInBackground и других на UIImage imageWithData. Я думаю, что-то будет ужасно неправильно с imageupdate (imageWithData)
-(void)updateData{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
profileName.text = oAuthTwitter.screen_name;
if(profilePic.image == nil){
NSString *urlString = @"https://api.twitter.com/1/users/profile_image/";
urlString = [urlString stringByAppendingFormat:oAuthTwitter.screen_name];
urlString = [urlString stringByAppendingFormat:@"?size=bigger"];
profilePic.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]];
[activityIndicator stopAnimating];
[activityIndicator release];
}
[pool drain];
}
- (void)resetUi{
if (oAuthTwitter.oauth_token_authorized) {
profilePic.hidden = NO;
profileName.hidden = NO;
NSLog(@"Resetting to authorised state");
[self performSelectorInBackground:@selector(updateData) withObject:nil];
}else{
NSLog(@"Resetting Twitter UI to non-authorized state.");
profilePic.hidden = YES;
profileName.hidden = YES;
}
}
Я попытался изменить его, но не повезло. – vijaykumarg
Да, я запускаю код с помощью прибора для измерения утечки. Просьба уточнить, есть ли другая альтернатива для получения изображения из URL-адреса. Наверное, это вызывает все проблемы. – vijaykumarg
Вы изменили объект ActivityIndicator, который я упомянул в ответе? Кроме того, что касается выбора изображения из URL-адреса, ваша логика выглядит хорошо, и я не думаю, что это причина вашей проблемы. – Krishnabhadra