我有一些非常简单的代码可以检查我的bool是否= = YES但是它还没有输入。
NSLog(@"boool %d",self.arrayAlreadyPopulated );
if (self.arrayAlreadyPopulated == YES)
{
Match *aMatch = [appDelegate.matchScoresArray objectAtIndex:(numMatchCounter)];
aMatch.teamName1 = TeamNameHolder;
}
else
{
Match *aMatch = [[Match alloc] init];
aMatch.teamName1 = TeamNameHolder;
[appDelegate.matchScoresArray addObject:aMatch];
[aMatch release];
}
顶部的调试表明self.arrayAlreadyPopulated的值在第二遍时应该是1。
但它永远不会进入第一部分,而是跳到'其他'
我无法看到我的生活是什么问题。 -.-
有人能告诉我吗?
由于 -Code
编辑声明代码
BOOL arrayAlreadyPopulated;
@property (nonatomic) BOOL arrayAlreadyPopulated;
@synthesize arrayAlreadyPopulated;
答案 0 :(得分:2)
请勿将BOOL
与YES
或NO
进行比较。它们可以包含非NO
但不等于YES
的值。相反,直接在if
语句中使用布尔表达式:
if (self.arrayAlreadyPopulated)
{
// ...
}
答案 1 :(得分:1)
arrayAlreadyPopulated
实际上可能不是BOOL。例如,如果它是浮点数,%d仍然会打印1。
答案 2 :(得分:0)
检查并仔细检查您是否将值arrayAlreadyPopulated
始终指定为self.arrayAlreadyPopulated = YES
,而不只是arrayAlreadyPopulated = YES
。
有时,使用属性v / s,属性的可关联变量并不总是按照您期望的方式运行。使用“变量”名称仅如果您使用它来通过[variable release]
语句释放内存,就像您在任何Apple示例代码中找到它一样。在所有其他情况下,请使用self.propertyname
。