我有一点困惑。当我在 tableView 数据源方法 numberOfRowsInSection 中打印我的数组时,我的应用程序崩溃了。
这是我的代码:在 .h 文件中
@interface AddColor : UIViewController<UITableViewDataSource,UITableViewDelegate>
{
UITableView *tblView;
NSArray *arrayColors;
}
@property(nonatomic,retain)NSArray *arrayColors;
@end
在 .m 文件中
@synthesize arrayColors;
- (void)viewDidLoad
{
[super viewDidLoad];
[self.navigationController setNavigationBarHidden:NO];
arrayColors = [NSArray arrayWithObjects:@"blackColor", @"darkGrayColor", @"lightGrayColor", @"whiteColor", @"grayColor", @"redColor", @"greenColor", @"blueColor", @"cyanColor", @"yellowColor", @"magentaColor", @"orangeColor", @"purpleColor", @"brownColor", nil];
tblView=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, 460) style:UITableViewStylePlain];
tblView.delegate=self;
tblView.dataSource=self;
[self.view addSubview:tblView];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
NSLog(@"%d",[arrayColors count]);//App crashes here.
return [arrayColors count];
}
当我打印 [arrayColors count] 时,我的应用程序崩溃了;
我找到了崩溃的解决方案,我只是将数组保留在 viewDidLoad
[arrayColor retain];
现在工作正常。但是为什么在我打印 [arrayColor count] 之前我的应用程序崩溃了;