在iOS中碰到的成員變數陣列初始化的問題

2021-06-20 18:30:44 字數 755 閱讀 7390

學習過程中碰到的陣列問題

當定義乙個成員變數

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...