0

我有一个问题,存储 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]); }

用户对象已创建,但如前所述,数组“用户”永远不会被填充。

当它运行 5 次时,它会抛出此错误:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“ * -[__NSArrayM insertObject:atIndex:]: object cannot be nil”

4

1 回答 1

2

以下行导致错误

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

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

于 2012-06-13T20:42:58.590 回答