У меня загадочная проблема - кажется, это должно быть так легко сделать, но почему-то это не работает. У меня есть объект под названием 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
}
Чего мне не хватает? Заранее спасибо!