2012-01-28 1 views
0

私はNSArrayを持っていて、その変数を関数内でローカルに宣言し、forループの中で使用しています。しかし、私はAnalyzeコードですが、エラーや問題のようです。問題は、Dead store - Values stored to 'elements' during initialisation is never read.あるしかし、私は...ループ内のために内部でforループの中で変数を使用すると、コンパイラが読み込むとは考えられません...なぜですか?

ビジュアル説明その変数を使用してください:

enter image description here

コンパイラはNSArrayを作成した後、私は持っていないと言っているのはなぜそこで質問は、です私のコードのどこかで読む?

P.S.コードは意図したとおりに動作しますが、この問題がなぜ表示されるのかを知りたいだけです。

ありがとうございました。

答えて

2

elemntsのメモリを割り当てて初期化した後、割り当てられたメモリを一度も使用していない変数を2行後に上書きします。

だけではなく、これを書く:

NSMutableArray *values = [[NSMutableArray alloc] init]; 
NSArray *elements = [[alarmLevelsDoc rootElement] elementsForName:@"AlarmLevel"]; 
... 
1

あなたの最初の行は、配列のためのスペースを割り当てるが、そのスペースを使用していません。あなたが割り当てると :

elements = [[alarmLevelsDoc rootElement] elementsForName:@"AlarmLevel"]; 

を、あなたは別のメモリ空間でその変数を指しているので、最初のものは無用です。

あなたは自分の最初の行を削除し、このようなあなたの要素のラインを作ることによって、この問題を解決することができます

NSArray *elements = [[alarmLevelsDoc rootElement] elementsForName:@"AlarmLevel"]; 
関連する問題