Я застрял в аварийном отказе EXC_BAD_ACCESS ”в моем освобождении контроллера табличного представления. Сбой происходит при освобождении NSMutableArray, которому было присвоено свойство сохранения. У меня есть второй NSMutableArray, которому также было присвоено свойство retain, но его выпуск не вызывает сбой. Пожалуйста, взгляните на следующий код, чтобы увидеть, не обращаю ли я внимания на управление памятью. Спасибо.
В моем заголовочном файле у меня есть следующее:
@interface selectSourcesTableViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
NSMutableArray *selectedNames;
NSMutableArray *selectedAvailability;
}
@property (retain, nonatomic) NSMutableArray *selectedNames;
@property (retain, nonatomic) NSMutableArray *selectedAvailability;
В моей реализации у меня есть следующее:
@implementation selectSourcesTableViewController
@synthesize selectedNames;
@synthesize selectedAvailability;
- (void)viewDidLoad {
NSArray *names = [selectedSourceFileContent objectForKey:@"selectedNames"];
selectedNames = [[NSMutableArray alloc] initWithObjects: nil];
NSArray *availability = [selectedSourceFileContent objectForKey:@"selectedAvailability"];
selectedAvailability = [[NSMutableArray alloc] initWithObjects: nil];
for (int i=0; i < [names count]; i++) {
NSString *aName = [names objectAtIndex:i];
[selectedNames addObject: aName];
NSString *anAvailability = [availability objectAtIndex:i];
[selectedAvailability addObject: anAvailability];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: kCellIdentifier];
...
for (int i=0; i < [selectedNames count]; i++) {
if ([contentForThisRow isEqualToString:[selectedNames objectAtIndex:i]]) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
}
}
- (void)dealloc {
[super dealloc];
[selectedNames release];
[selectedAvailability release];
}
Код, показанный выше, показывает единственное использование этих двух массивов.
Итак, ничего плохого не происходит, когда selectedNames выпущен, но я получаю сбой EXC_BAD_ACCESS, когда selectedAvailability выпущен.
Последнее замечание. Там не происходит сбой в самый первый раз, когда я запускаю этот код после запуска xcode. После этого происходит сбой каждый раз, когда я перезапускаю приложение.
Есть мысли?