私はロール学習の目的でいましたが、私はこれを取得しません。私はnsstring i-varを宣言しています。私はinitメソッドの値を設定して、その後のインスタンスメソッドでそのivarにアクセスすると、予期せずクラッシュしたり動作したりします。NSStringインスタンス変数のクラッシュ
//heres what my declaration looks like
@interface StockData : CCNode {
NSString *myPath;
NSString *myPath2;
}
-(id) init
{
if ((self = [super init])){
myPath = [[NSBundle mainBundle] pathForResource:@"stocks" ofType:@"sqlite"];
myPath2 = @"test";
CCLOG(@"mypath::::%@",[myPath class]);
CCLOG(@"mypath2::::%@",[myPath2 class]);
}
return self;
}
-(void) getChunk{
CCLOG(@"mypath_getchunk::::%@",[myPath class]);//this crashes
CCLOG(@"mypath2_getchunk::::%@", [myPath2 class]);//this doesn't
....
私はcocos2dを使用しています、と私はこのような予定の更新方法でGetChunkメソッドを呼び出しています:
-(void) updateOncePerSecond:(ccTime)delta{
if(!sd){
sd = [StockData initStockData];
[self addChild:sd];
}
[sd getChunk];
NSLog([sd getDate]);
}
それは反復する初めて私はこの取得を通じて:
2012から03を-19 20:33:58.591のHelloWorld [6777:10a03] mypath_getchunk :::: __ NSCFString
2012-03-19 20:33:58.591のHelloWorld [6777:10a03] mypath2_getchunk :::: __ NSCFConstantString
(それがクラッシュしていない場合)、それはを反復二度目:
2012-03-19 20:33:59.589のHelloWorld [6777:10a03] mypath_getchunk :::: NSMallocBlock
2012から03 -19 20:33:59.589 HelloWorld [6777:10a03] mypath2_getchunk :::: __ NSCFConstantString
なぜ時にはクラッシュするのでしょうか。なぜそれがmallocblockに変わりますか? NSStringのバグですか、それとも間違っていますか?他の変数は正常に動作しているようですか? NSCFStringをNSCFConstantStringのように動作させるにはどうしたらいいですか?私はそれがクラッシュしないようにするのが良いのが好きです。どんなアドバイスも大歓迎です!!!感謝! ありがとう!
ARC、ガベージコレクション、保持/解放を使用しているメモリ管理はありますか? – Mark