Это пример путаницы между использованием методов доступа, генерируемых @synthesize, и прямой ссылкой на переменную экземпляра.Попробуйте объявить вашу собственность следующим образом:
---------------------------- HelloWorldLayer.h -------------------------------
@interface HelloWorldLayer : CCLayer
@property (nonatomic) BOOL win;
---------------------------- HelloWorldLayer.m -------------------------------
@synthesize win=_win;
-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (...){
self.win = YES;
}
}
Я думаю, что значения BOOL всегда по умолчанию равны False , поэтому вам действительно не нужно устанавливать его в init (), если вы не хотите, чтобы оно по умолчанию было True .
В любом случае, теперь переменная экземпляра установлена в _win в вашем классе HelloWorldLayer.Всякий раз, когда вы хотите установить его, всегда называйте его как self.win.При работе со свойствами это безопасная привычка, гарантирующая, что вы не столкнетесь с утечками памяти, потому что когда вы имеете дело с указателями, сгенерированные средства доступа будут освобождаться и сохраняться для вас.Если вы устанавливаете переменную экземпляра напрямую, вы должны помнить, чтобы сначала освободить ее.
Надеюсь, это поможет!