因此,我有一组学生姓名。我正在运行测试数据,因此我要遍历分配和初始化每个学生的循环,然后将其扔到stuArr
中-如果我NSLog我的Student.h
init()方法,它将为我提供我期望的名称,但是当我尝试调用时他们在我的方法之外,我得到空值:
- (void)viewDidLoad
{
[super viewDidLoad];
for (int i = 0; i < 5; i++) {
stuArr = [stuArr arrayByAddingObject:[[Student alloc] init]];
id test = [stuArr objectAtIndexedSubscript:i];
NSLog(@"%@", [test stuName]);
}
}
我在这里缺少重要的东西吗?如果需要的话,我可以放入Student.m文件,但在那里一切似乎都很好。
最佳答案
我猜你应该在这行之前分配+ init stuArr:
stuArr = [stuArr arrayByAddingObject:[[Student alloc] init]];
或尝试执行以下操作:
- (void)viewDidLoad
{
[super viewDidLoad];
NSMutableArray *mutStudentsArray = [NSMutableArray array];
for (int i = 0; i < 5; i++)
{
[mutStudentsArray addObject:[[Student alloc] init]];
id test = [mutStudentsArray objectAtIndex:i];
NSLog(@"%@", [test stuName]);
}
stuArr = [NSArray arrayWithArray:mutStudentsArray];
}