为什么不分配我的变量

时间:2009-11-07 21:25:12

标签: iphone objective-c cocoa cocoa-touch

好吧我认为我对目标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;

2 个答案:

答案 0 :(得分:14)

self.mapData.currentPlayer == newCurrentPlayer;

你确定你想要两个相同的标志吗?该语句在语法上是正确的,将评估为真或假。

答案 1 :(得分:2)

==是一个布尔运算符,而=是一个赋值运算符。与Dave所说的一样,如果您使用的是if语句,例如if (self.mapData.currentPlayer == newCurrentPlayer) {…},则可以使用==,因为它会评估为truefalse ,而=将用于设置变量的值,这是我认为你想要做的。

如果有任何安慰,我犯了太多次错误......

我所做的就是使用NSLog()printf()来确保每个步骤都正常运行。