Обратите внимание на приведенный ниже код, два оператора NSLOG. «Aaa» распечатывается, а «bbb» - нет. Вместо этого симулятор падает с EXC_BAD_ACCESS. Я знаю, что это обычно означает, что объект, к которому я пытаюсь получить доступ, был преждевременно освобожден. Я просто не могу понять, что не так ...
Обновлен:
вот мой .х
#import <UIKit/UIKit.h>
@interface vcAddCat : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate> {
NSManagedObjectContext *managedObjectContext;
IBOutlet UIPickerView * pickerView;
NSArray * _weights;
NSArray * _categories;
IBOutlet UILabel *lastCat;
IBOutlet UILabel *lastWeight;
}
У меня нет ни строк @property, ни @synthesize ни для одного массива ...
Вот два отрывка из моего .m
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@">>> Entering %s <<<", __PRETTY_FUNCTION__);
_categories=[[NSArray alloc] initWithObjects: @"Homework",@"Quizzes",@"Tests", @"Mid-Term Exam", nil];
;
NSLog(@"aaa");
_weights=[[NSArray alloc] initWithObjects: @"1",@"2",@"3",@"4", @"5", @"6", @"7", @"8", @"9", @"10", @"11", @"11", @"12", @"13", @"14", @"15", @"16", @"17", @"18", @"19", @"20", @"21",@"22",@"23", @"24", @"25", nil];
NSLog(@"bbb");
.. и вот где я освобождаю массивы ...
- (void)dealloc {
[super dealloc];
[_categories release];
[_weights release];
NSLog(@">>> Leaving %s <<<", __PRETTY_FUNCTION__);
}