我遇到问题,存储viewController对象的实例。我希望每个用户都有他/她自己的屏幕上有一些信息,然后能够模态切换用户。
“User”的类实例和数组“Users”在.h文件中定义,循环运行5次 - 但是数组永远不会被填充:
- (void) chooseNumberOfUsers:(id)sender {
numberOfUsers = [sender tag];
NSLog(@"Number of users: %i", numberOfUsers);
currentUser = 0; // Nul-indekseret
// Herefter skal vi oprette spillerobjekter
users = [[NSMutableArray alloc] init];
for (int i=0; i<numberOfUsers; i++) {
user = [[UserViewController alloc] init];
user.userid = i+1;
[users addObject:user];
}
[users addObject:nil]; // Is this necessary?
// Debug: show info about the first user
NSLog(@"%@", [users objectAtIndex:0]); }
创建了用户对象,但如上所述,数组“users”永远不会被填充。
当它运行5次时,会抛出此错误:
由于未捕获的异常而终止应用 'NSInvalidArgumentException',原因:' * - [__ NSArrayM insertObject:atIndex:]:object不能为nil'
答案 0 :(得分:2)
以下行导致错误
[users addObject:nil]; // Is this necessary?
如异常所述,您不能将nil添加到NSArray。如果您需要向Cocoa集合添加空值,NSNull就是这样做的。