[問題] PickerView 難以理解的錯誤 (更新)

看板MacDev作者 (碳烤焦貓)時間14年前 (2011/08/15 22:48), 編輯推噓0(009)
留言9則, 3人參與, 最新討論串1/1
目前我有三個PickerView,而且都運行正常 由於我每一個PickerView會回傳一個位置,所以我想要在底下寫更進一步的動作 以下為代碼 ------------- - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{ //當pickerView為選擇的pickerA時 if (pickerView == pickerA){ Label = ..... dict = [dataArray objectAtIndex:0]; } dict是一個NSDictionary,想要讀取dataArray的內容 而這個dict那句放在ViewDidLoad完全沒有錯誤 他報錯的訊息則是跳出一個視窗上面指向記憶體 0x00f4309b <+0015> mov 0x8(%edx), %edi Thread 1:Program received singal: "EXC_BAD_ACCESS". 再詳細的講就是,我寫了UIButtom,按了之後會跑出Picker,按照使用者的選擇 會影響下個Picker的內容,而我在選完第一個Picker時就報錯了 這到底是怎麼回事~"~ ------------------------------------------------------------ 呃…我找到問題在哪了,但還是很莫名奇妙 我在viewDidLoad裡面寫了讀取plist的來源 NSString *path = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"]; dataArray = [NSMutableArray arrayWithContentsOfFile:path]; 結果沒想到這兩句寫在viewDidLoad以後,dataArray不能拿去其他地方用? 即使把那兩句寫在initWithNibName裡也一樣 我是把那兩句寫在picker didSelectRow裡就行了,真的很奇怪… 讀取文件來源這種東西不是通常寫在Constructor或第一個會執行的main裡嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.233.89.220

08/15 23:52, , 1F
呃.....NSLog(@"%@", dataArray);
08/15 23:52, 1F

08/16 03:17, , 2F
重點不是在那個NSLOG啦XD 我是想說他連print都會出錯了
08/16 03:17, 2F

08/16 03:19, , 3F
不知道為什麼dataArray會出錯在viewDidLoad卻不會
08/16 03:19, 3F
※ 編輯: yueyajbdt 來自: 220.233.89.220 (08/16 09:46) ※ 編輯: yueyajbdt 來自: 220.233.89.220 (08/16 10:18)

08/16 11:46, , 4F
先init一個NSMutableArray給dataArray
08/16 11:46, 4F

08/16 11:47, , 5F
直接讀擋案放著等以後用的話可能會被autorelease掉
08/16 11:47, 5F

08/16 11:47, , 6F
所以先找個地點讓他永久待著比較穩
08/16 11:47, 6F

08/17 00:12, , 7F
你的dataArray怎麼宣告?
08/17 00:12, 7F

08/17 00:14, , 8F
arrayWithContentsOfFile 這個fun回傳值會autorelease
08/17 00:14, 8F

08/17 00:15, , 9F
如果你的property沒有設retain那當然會出問題
08/17 00:15, 9F
文章代碼(AID): #1EIJ6mtO (MacDev)
文章代碼(AID): #1EIJ6mtO (MacDev)