Я пишу приложение для iPhone. У меня есть файл заголовка, который выглядит так:
@interface EditTagsViewController : UITableViewController {
NSMutableArray *allTags;
NSMutableArray *selectedTags;
NSInteger currentFavorite;
}
@property (nonatomic, retain) NSMutableArray *allTags;
@property (nonatomic, retain) NSMutableArray *selectedTags;
@property (nonatomic) NSInteger currentFavorite;
@end
В файле реализации мой метод viewDidLoad выглядит следующим образом:
- (void)viewDidLoad {
NSMutableArray *aTags = [[NSMutableArray alloc] initWithArray:[Tag findAllTags]];
self.allTags = aTags;
[aTags release];
NSMutableArray *sTags = [[NSMutableArray alloc] initWithArray:[Tag findByFavoriteId:currentFavorite]];
self.selectedTags = sTags;
[sTags release];
UIBarButtonItem *add = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addNewTag:)];
self.navigationItem.rightBarButtonItem = add;
[add release];
[super viewDidLoad];
}
Вот мой метод dealloc:
- (void)dealloc {
[allTags release];
[selectedTags release];
[super dealloc];
}
Что меня смущает, так это то, что когда я запускаю приложение как в симуляторе, так и на самом устройстве, используя инструменты (утечки памяти), оно говорит мне, что эта строка в моем методе viewDidLoad пропускает массив:
self.selectedTags = sTags;
Это сбивает с толку, потому что я использую одну и ту же технику с двумя разными переменными, но пока не сообщается об утечке с первой.
Я чувствую, что упускаю что-то очевидное здесь. Есть идеи?