Я использую код ниже для установки двух NSArray
иваров:
Проблема в том, что я получаю утечку памяти в следующих строках:
followingFriendsArray = [[NSArray alloc] initWithArray:friend.Following];
followerFriendsArray = [[NSArray alloc] initWithArray:friend.Followers];
Разве это не правильный способ установки иваров из существующих NSArray
предметов? Любая помощь будет оценена. Я также пытался autorelease
вышеупомянутые две строки, но когда я на самом деле обращаюсь к ним другим способом, я получаю сообщение об ошибке, что они уже были освобождены.
Я включил мой код интерфейса и реализации ниже:
Интерфейс .h:
NSArray *followingFriendsArray;
NSArray *followerFriendsArray;
@property (nonatomic, retain) NSArray *followingFriendsArray;
@property (nonatomic, retain) NSArray *followerFriendsArray;
Реализация .m:
- (void)handlerGetFollowingInformation:(id)value {
BOOL success = [Utility checkWebServiceErrors:value controller:self.navigationController];
if (success) {
Friend *friend = (Friend *)value;
followingFriendsArray = [[NSArray alloc] initWithArray:friend.Following];
followerFriendsArray = [[NSArray alloc] initWithArray:friend.Followers];
}
}
Вот как мне нужно получить доступ к массивам:
- (void)followersButtonTapped:(id)sender {
FollowingVC *fvc = [[FollowingVC alloc] initWithNibName:@"FollowingViewController" bundle:nil];
fvc.friends = followerFriendsArray;
[self.navigationController pushViewController:fvc animated:YES];
[fvc release];
}
Я выпускаю два своих ивара следующим образом:
- (void)viewDidUnload {
self.followingFriendsArray = nil;
self.followerFriendsArray = nil;
[super viewDidUnload];
}
- (void)dealloc {
[followingFriendsArray release];
[followerFriendsArray release];
[super dealloc];
}
Я имею в виду, что код работает просто отлично, просто меня беспокоит утечка памяти при запуске инструмента производительности «Утечки».