문제

I'm trying to learn objective c.

this is all in my .m file

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

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

the contents of this next guy should not be relevant. i assume the return value is all you need to see in order to help out

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

@implementation TetrisEngine
@synthesize currPiece;

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

and this is where i get the error: Incompatible pointer types assigning to 'struct TetrisPiece *' from 'struct TetrisPiece *'

도움이 되었습니까?

해결책

The file var needs to be declared explicitly for the c-type pointer, like this...

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

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

The rest should work as is. Though I agree with the other answer that there are more modern ways to declare structs in oo.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top