好吧我认为我对目标c中属性的理解可能不是我想象的那样。
在我的程序中,我有一个包含我班级的单身人士。
在初级阶段我的班级中,我将一个值从单身人士分配给我的财产。
然后我为该属性的属性赋值。
然而它没有保留值,当我比较单身人士的价值时,没有任何改变。这里发生了什么?有什么想法吗?
@interface MainGameLoop : NSObject {
MapData *mapData;
}
@property (retain) MapData *mapData;
-(id) init
{
self = [super init];
GlobalVariables *sharedManager = [GlobalVariables sharedManager];
self.mapData = sharedManager.mapData;
return self;
}
在我班上的一个功能中:
工作的:
sharedManager.mapData.currentPlayer = newCurrentPlayer;
什么都不做:
self.mapData.currentPlayer == newCurrentPlayer;
答案 0 :(得分:14)
self.mapData.currentPlayer == newCurrentPlayer;
你确定你想要两个相同的标志吗?该语句在语法上是正确的,将评估为真或假。
答案 1 :(得分:2)
==
是一个布尔运算符,而=
是一个赋值运算符。与Dave所说的一样,如果您使用的是if
语句,例如if (self.mapData.currentPlayer == newCurrentPlayer) {…}
,则可以使用==
,因为它会评估为true
或false
,而=
将用于设置变量的值,这是我认为你想要做的。
如果有任何安慰,我犯了太多次错误......
我所做的就是使用NSLog()
或printf()
来确保每个步骤都正常运行。