學習過程中碰到的陣列問題
當定義乙個成員變數
nsarray *_dataarray;
以類方法初始化
- (void)initdata,@,@.................,nil];
在實現tableviewdatasource 的協議
-(uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath
//nsmutablearray *array = [[nsmutablearray alloc]initwithobjects:_dataarray, nil];
nsdictionary *personinfo = _dataarray[indexpath.row];
cell.textlabel.text = personinfo[key];
cell.detailtextlabel.text = personinfo[key];
return cell;
}這樣初始化的陣列在載入資料的時候可以顯示,但是當滑動出螢幕,載入其它資料時,會報野指標錯誤
打斷點發現_dataarray 陣列為空,
網上扒帖子發現相關問題都是在實現的協議中進行了多餘的release,
之後把初始化函式修改為
- (void)initdata,@,@.................,nil];
在滑動時可以正常載入
筆試遇到的困惑 陣列成員變數 類變數的預設初始值
在程式設計時,有時候宣告陣列只宣告了陣列長度,沒有進行初始化int array new int 5 或者在類中宣告了全域性變數但是沒有初始化。這兩種情況下,陣列的元素和全域性變數其實是有預設值的。下面是各種型別陣列或者變數的預設值 byte,short和int型別的陣列或者成員變數預設值 0 lon...
iOS中成員變數和屬性區別
接觸ios的人都知道,property宣告的屬性缺省會生成乙個 型別的成員變數,同時也會生成setter getter方法。但這只是在ios5之後,蘋果推出的乙個新機制。看老 時,經常看到乙個大括號裡面定義了成員變數,同時用了 property宣告,而且還在 implementation中使用 sy...
解惑 iOS中成員變數和屬性區別
接觸ios的人都知道,property宣告的屬性缺省會生成乙個 型別的成員變數,同時也會生成setter getter方法。但這只是在ios5之後,蘋果推出的乙個新機制。看老 時,經常看到乙個大括號裡面定義了成員變數,同時用了 property宣告,而且還在 implementation中使用 sy...