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]); }

ユーザーオブジェクトは作成されますが、前述のように、配列「users」にはデータが取り込まれません。

5 回実行すると、次のエラーがスローされます。

キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: ' * -[__NSArrayM insertObject:atIndex:]: オブジェクトを nil にすることはできません'

4

1 に答える 1

2

次の行がエラーの原因です

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

例外が示すように、nil を NSArray に追加することはできません。Cocoa コレクションに null 値を追加する必要がある場合は、NSNullを使用してください。

于 2012-06-13T20:42:58.590 に答える