0

目的cを学ぼうとしています。

これはすべて私の.mファイルにあります

@interface TetrisEngine ()
@property (nonatomic, readwrite) struct TetrisPiece *currPiece;
@end

struct TetrisPiece {
    int name;
    struct {
        int colOff, rowOff;
    } offsets[TetrisPieceRotations][TetrisPieceBlocks];
};

この次の男の内容は関係ないはずです。私はあなたが助けるためにあなたが見る必要があるのは戻り値だけだと思います

static struct TetrisPiece pieces[TetrisNumPieces] = {...};

@implementation TetrisEngine
@synthesize currPiece;

- (void) nextPiece
    currPiece = &pieces[ ((random() % (TetrisNumPieces * 113)) + 3) % TetrisNumPieces];

そして、これは私がエラーを取得する場所です: Incompatible pointer types assigning to 'struct TetrisPiece *' from 'struct TetrisPiece *'

4

1 に答える 1

4

ファイル var は、このように c 型ポインターに対して明示的に宣言する必要があります...

@interface TetrisEngine () {
    // added curly braces and this
    struct TetrisPiece *currPiece;
}

@property (nonatomic, readwrite) struct TetrisPiece *currPiece;
@end

残りはそのまま動作するはずです。ooで構造体を宣言するより現代的な方法があるという他の答えには同意しますが。

于 2012-05-06T04:59:25.363 に答える