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