2012-03-16 20 views
0

我收到一條警告,提示initWithFrame:reuseldentifer:已被棄用。我不知道這是什麼意思。我如何解決這個錯誤免費?UITableViewCell - initWithFrame:reuseldentifer:已棄用

// If no cell is available, create a new one using the given identifier 
if (cell == nil) { 
    cell = [[[ThreadSCell alloc] initWithFrame:CGRectMake(0,0,0,0) reuseIdentifier:CellIdentifier] autorelease]; 
    cell.accessoryType = UITableViewCellAccessoryNone; 
} 

我正在使用this code

回答

2

這意味着Apple建議您不要再使用initWithFrame:reuseIdentifier:來創建單元格。這可能有多種原因,比如有一種方法可以替代它,或者該方法可能會導致問題,或者會被刪除。

在這種情況下,現在指定的初始化程序是initWithStyle:reuseIdentifier,您應該使用那個來擺脫警告。

+2

由於框架參數總是被忽略(寬度等於表視圖的寬度,高度由委託設置,原點由表視圖自身計算),因此不推薦使用的方法非常糟糕。他們只是棄用了API,因爲它沒有任何意義。 – Costique 2012-03-16 05:26:56

+0

如果您更改爲... cell = [[[ThreadSCell alloc] initWithStyle:CGRectMake(0,0,0,0)reuseIdentifier:CellIdentifier] autorelease];出現錯誤。 – user1273250 2012-03-16 05:29:07

+0

@ user1273250當然,因爲style參數不是CGRect。您應該在UITableViewCell頭或類引用中查找該方法以瞭解如何使用它。 – EmilioPelaez 2012-03-16 05:42:35