0

我的代码如下,

for (int i=0; i < kNumberOfTitles; ++i) {
    UILabel * aLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, i*10, 100, 30)];
    [_titles addObject:aLabel];
    NSAssert([_titles objectAtIndex:0] != nil, @"wrong 1");
}
NSAssert([_titles objectAtIndex:0] != nil, @"wrong 2");
((UILabel *)[_titles objectAtIndex:0]).text = @"Tel";
((UILabel *)[_titles objectAtIndex:1]).text = @"Add";
for (UILabel* aLabel in _titles) {
    [self.view addSubview:aLabel];
}

在第一个 NSAssert 之前,我只是添加了一个新标签然后检索它,我发现它是 nil。有什么问题?

4

1 回答 1

2

我怀疑问题是你实际上并没有创建数组,所以nil如果它是一个实例变量(或者你使用 ARC),或者如果它是一个简单的局部变量,如果你不使用 ARC,它是一些垃圾值。你必须做

_titles = [[NSMutableArray alloc] init];

在尝试将项目添加到数组之前。

于 2012-09-16T08:09:33.603 回答