저는 수수께끼 같은 문제가 있습니다 - 그렇게하기는 쉽지만 어떻게 든 작동하지 않는 것처럼 보입니다. Player라는 개체가 있습니다. Manager 클래스에는 Player 인스턴스가 네 개 있습니다.변수의 재 할당이 작동하지 않습니다.
@interface Manager
{
Player *p1, *p2, *mCurrentPlayer, *mCurrentOpponent;
}
// @property...
Manager 객체에는 initPlayers 및 swapPlayers 메소드가 있습니다.
-(void) initPlayers { // this works fine
self.p1 = [[Player alloc] init];
self.p2 = [[Player alloc] init];
self.mCurrentPlayer = self.p1;
self.mCurrentOpponent = self.p2;
}
-(void) swapPlayers { // this swapping of pointer doesn't work
self.mCurrentPlayer = self.p2;
self.mCurrentOpponent = self.p1;
// When I look at the pointer in debugger, self.mCurrentPlayer is still self.p1. :-(
// I even tried first setting them to nil,
// or first releasing them (with an extra retain on assignment) to no avail
}
무엇이 누락 되었습니까? 미리 감사드립니다!
또한 인터페이스에서 @property 코드를 게시 할 수 있습니까? –
@property (비 원자력, 보유) Player * p1, * p1, * mCurrentPlayer, * mCurrentOpponent; – twinkle