2

私のコード:

     NSArray *keys = [piecesDict allKeys]; 
    //keys are NSStrings of sprite names, piecesDict is NSDictionary

    for(int i = 0; i < piecesDict.count; i++){
        PuzzlePiece *piece;
        id key = [keys objectAtIndex:i];
        piece.keyName = key; }

クラッシュする正確なコードはですpiece.keyName = key。取得し EXC_BAD_ACCESSます。.keyNameプロパティはです(nonatomic, retain)。私は無駄にそれを作ったりキャストしたりしkeyてみました。NSString *(NSString *)key

ここで何が欠けていますか?

4

1 に答える 1

3

初期化するのではなくpiece、ポインタを宣言して空中にぶら下げたままにします。それはランダムながらくたとクラッシュを指します。適切なインスタンスに割り当てる必要があります。

PuzzlePiece *piece = [[PuzzlePiece alloc] init]; // or whatever

そして真剣に:iOSアプリを作る前にCをよく学んでください。そうしないと、自分自身とユーザーを足元で撃ちます。

于 2013-02-04T23:41:12.060 に答える