编辑 - 对错字表示歉意,因为我不得不离开建筑物,但是呃......我可以问,为什么downvotes?仅仅是因为一些语法错误?我很乐于接受批评,但请具有建设性?Objective-C ivar BOOL不能保留价值
感谢您的建设性的答案,我已经给了upvote。
=============================================
我有一个iVar BOOL,我想在整个课堂上使用。我试图将其初始化为YES
,但是我第一次读出它,它是NO
。这是为什么?这对我来说很奇怪,因为我的int
都保留了。
在我.mm
文件我有这样的事情:
@interface MyClass : NSObject {
BOOL myBool;
int myInt;
}
@end
@implementation MyClass
-(id)init{
//...
myInt = 3;
myBool = YES; //here i set it
//...
[self addObjectsToGame];
//...
}
-(void)addObjectsToGame{
//...
assert(myInt == 3);
assert(myBool); // <---- this line would fail
//...
}
@end
,我感到我可以用@property与分配,但为什么这伊娃不保留它的价值?
编辑
没关系呀,哇,东西是真的搞砸了这里...我试图与@property
来取代它,它仍然没有工作。然后我试图“找到所有项目”为变量myBool
和我不会改变任何其他地方
注:我使用cocos2d的,但我不认为应该有什么影响
你确定你没有错过'@ end'在'@ implementation'之前? – dasblinkenlight
我不认识用于声明'addObjectsToGame'的语法,其中方括号后面带括号。而你并没有以'[self addObjectsToGame]'的形式调用它。显然,这不是一个标准的Objective-C文件。这是Objective-C++吗? – Rob
你能给我们真正的代码吗? ' - (void)addObjectsToGame()'是无效的obj-c – vikingosegundo