1
我会说我知道Objective C很好。但是我只是追踪了一个很奇怪的bug。 我有一个“int模式;”成员变量在类中。而只是写“模式”在init方法中改变了类的行为(它后来没有得到处理) 即使编译器给我的警告“Statement has no effect”非常奇怪的目标C错误
发生了什么事? 我能否确定何时处理对象?
这是我在一个稍微详细代码:
@interface HelpScene : CCScene {
int mode;
}
,并在实施
- (id) init {
if (self=[super init]) {
[[SomeObject alloc] initWithBlock:^(id sender) {
mode; // CHANGES BEHAVIOUR
[Call CCDirector.replaceScene which usually ends up deallocing self
(the current scene). But not with the previous line anymore]
}
}
return self;
}
使用块,垃圾收集,多种方法来调用方法(self.running和[self running])Objective-C变得越来越复杂。太复杂。在某些时候,当系统变得足够复杂时,我们将大脑的力量用于语言的语法,而不是创建。 – 2011-05-25 23:34:13
现货!谢谢。我不知道块可能会这样棘手。我用选择器机制替换它,现在它工作正常。 – vlad2048 2011-05-25 23:35:16
对不起 - 忘了在我的评论中指出马塞洛的解决方案是简洁和正确的。 – 2011-05-25 23:52:57