对象不存储在NSMutableArray中

时间:2012-06-13 20:35:20

标签: nsmutablearray

我遇到问题,存储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'

1 个答案:

答案 0 :(得分:2)

以下行导致错误

[users addObject:nil]; // Is this necessary?

如异常所述,您不能将nil添加到NSArray。如果您需要向Cocoa集合添加空值,NSNull就是这样做的。