2014-03-19 115 views
1

當我分析我的項目但項目沒有崩潰時,我收到了死鎖存儲警告。
「在其初始化期間存儲到'行'的值永遠不會被讀取」。 這是我在做什麼:「Dead Store」警告XCode

long row = [self.tableView indexPathForSelectedRow].row; // there is dead store warning 
if (sqlite3_open(dbpath, &_pdd_ab_stat) == SQLITE_OK) { 
    for (row = 0; row < 40; row ++) { 
     NSString *querySQL = [NSString stringWithFormat:@"SELECT Max(rightCount) from paper_ab_stat WHERE biletNumber = \"%ld\"", row + 1]; 
     const char *query_stmt = [querySQL UTF8String]; 
     if (sqlite3_prepare_v2(_pdd_ab_stat, query_stmt, -1, &statement, NULL) == SQLITE_OK) { 
      if (sqlite3_step(statement) == SQLITE_ROW) { 
       NSNumber *arrayelement = [NSNumber numberWithInt:sqlite3_column_int(statement, 0)]; 
       [_biletRecords addObject:arrayelement]; 
      } 
     } 
     sqlite3_finalize(statement); 
    } 
} 
sqlite3_close(_pdd_ab_stat); 

return _biletRecords; 

我該如何解決它?

回答

4

這是因爲你之前它重新分配給0for循環不使用值:

long row = [self.tableView indexPathForSelectedRow].row; 
if (sqlite3_open(dbpath, &_pdd_ab_stat) == SQLITE_OK) { 
    for (row = 0; row < 40; row ++) { // Reassigned! 

要解決:

long row; 
if (sqlite3_open(dbpath, &_pdd_ab_stat) == SQLITE_OK) { 
    for (row = 0; row < 40; row ++) { 

(雖然看起來破;你可能想在for循環中使用一個不同的變量)。

+0

謝謝,修復刪除第一行和編輯循環爲(長行= 0;行<40;行++){ 這是我愚蠢的失敗:) – serg1991

+0

我不會想到我的反對鐺的機會分析儀... – trojanfoe