2012-01-28 28 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分配內存並初始化它,然後兩行後覆蓋該變量從未使用過分配的內存!

只要寫這個:

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

你的第一行是數組分配空間,但沒有使用的空間。 當分配:

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

你指着另一個內存空間的變量,所以第一個是沒用的。

您可以通過只刪除您的第一行,並讓您的元素修復這條線是這樣的:

NSArray *elements = [[alarmLevelsDoc rootElement] elementsForName:@"AlarmLevel"]; 
相關問題