我有一个令人困惑的问题 - 它似乎应该很容易做,但不知何故它不工作。我有一个叫做Player的对象。 Manager类有四个播放器实例:重新分配变量不起作用
@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代码吗? – 2010-02-05 18:59:25
@property(nonatomic,retain)Player * p1,* p1,* mCurrentPlayer,* mCurrentOpponent; – twinkle 2010-02-05 19:25:23