我有类,它有一个NSString。NSString在初始化方法中超出范围
@interface AudioManager : NSObject {
AudioData *data_;
NSString *requiredMusic_;
NSTimer *timer_;
MUSIC_ID musicId_;
float fadeIncrement_;
}
当我在init
方法通过调试器看着requiredMusic_
可变它写了NSCFString ... out of scope
。但是,如果我将从self
看这个变量,那么它将被写入零!
-(id) init
{
self = [super init];
if (self)
{
data_ = &[[GameDataObject sharedObject] data]->audioData();
requiredMusic_ = @"bla bla bla";
musicId_ = MUSIC_OTHER;
}
return self;
}
Out of scope
也写在其他地方,如预期我的代码不能正常工作。问题是什么 ?
-(void) changeBackgroundMusic:(NSString *)path
{
[requiredMusic_ release];
requiredMusic_ = path;
[requiredMusic_ retain];
...
}
在上面的代码中,它也超出了范围。
我该如何禁用优化? – Andrew 2011-03-26 17:04:16
用'-O0'编译。 – 2011-03-27 10:28:49