2010-07-24 55 views
0

我有一些內存問題,從另一篇文章我試圖分析我的項目,瞭解我的錯誤....這裏有一些事情,我不明白我的錯誤在哪裏....瞭解分析我的應用程序的結果

感謝

1:源碼連接: sqlite connection http://grab.by/grabs/2125d36a8ec1fb0af1c813af33af5653.png

2:JSON轉換器: json converter http://grab.by/grabs/7b22080098c8931d7ef505a1eb7c087e.png

3:URL連接: url connection http://grab.by/grabs/848a0942f69c91303347d08c64fb2fbb.png

4:UITableView的細胞: cell of uitableview http://grab.by/grabs/3917e88829bb6c956bb30445fc7bec20.png

回答

2
  1. 如前所述你不使用它分配給dbrc。如果您不打算使用錯誤代碼,您可以忽略該作業。

    sqlite3_prepare_v2(...); 
    ... 
    while (sqlite3_step(...) == SQLITE_ROW) { 
        ... 
    
  2. 如果for循環以上不運行(即,正則表達式匹配失敗),那麼matchOk將永遠不會被初始化,即,其含有的垃圾。

    NSString* matchOK = nil; 
    int nM = 0; 
    ... 
    
  3. 你有+alloc編一個NSURLConnection的,但從來沒有在任何地方存儲結果,從而分析儀有沒有機會-release事後荷蘭國際集團它。這會導致泄漏。

  4. 您有+alloc編輯了一個TickerSessions,但沒有-release

實際上,您可以打開Build Results窗口來查看觸發錯誤的原因。

http://developer.apple.com/iphone/library/documentation/DeveloperTools/Conceptual/XcodeProjectManagement/art/analyzer_results_by_step.jpg

1
  1. 您分配值DBRC,但你永遠不會使用分配的值。只是擺脫這個變量。

  2. 如果正則表達式不匹配,或者只有一個匹配,matchOk會有一個未確定的值,因爲該賦值永遠不會執行。因此,dataUsingEncoding消息的接收者是垃圾。

  3. ReadType是在分配期間自動分配的類型,最可能是NSNumber。你永遠不會釋放這個對象。

  4. 您正在明確分配刻度值,但您在退出方法範圍之前未釋放刻度值。