[問題] mutablearray deep copy?
目前在做 table view 的 search 問題
所用到的 dictionary 都是存在 mutablearray 中
在搜尋後會改變 dictionary 中的 array
所以當按下 取消時要把 整個 mutablearray 中的資料復原
所以就需要用到 mutablearray 的 deep copy
現在找到的資料都是使用
[[NSMutableArray alloc] initWithArray:xxxx copyItem:YES]; 做
不過 這樣子 做完後 都會當掉
不知道是什麼問題
請問 mutablearray 的 deep copy 這樣寫是對的嘛@@
架構是長這樣子的
mutablearray------Dictionary-------mutablearray
| |--mutablearray
| |--mutablearray
|
|----Dictionary-------mutablearray
|--mutablearray
|--mutablearray
...........
不知道有沒有辦法連 第三層的資料都複製過去QQ
感謝各位大大的收看
--
公告
D.
#1ByBycco (DSLR) [ptt.cc] [作品] 台灣山
→ sorkayi :白目 05/17 14:52
D.罵人白目違反 3-4 人身攻擊相關規定,sorkayi 警告一次。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.2.251
→
10/11 02:24, , 1F
10/11 02:24, 1F
→
10/11 02:24, , 2F
10/11 02:24, 2F
我的想法是 當我要 reset search 時 只要將 原本的資料覆蓋到
被改動的資料中就行了 接著在 reload
而且我也在想說要複製原本的資料 是不是那個方法也有問題
跑到那行都會爆掉 @@ 所以才想上來問看看有沒有 deep copy 的方法
※ 編輯: sorkayi 來自: 140.128.88.207 (10/11 10:22)
:P 後來才發現我眼殘 = =
在 copy original data 時 不是用那個 deep copy 的方法 = =
但怎麼 copy 過去後 資料沒有 全部過去 好像只有到 dictionary 而已
第三層的資料就沒有回復了
※ 編輯: sorkayi 來自: 140.128.88.207 (10/11 11:26)
自問自答
後來我加入一個 isSearch 的 flag
然後把儲存的 mutable 改成是要儲存搜尋後的結果
原始資料不動
在產生 tableview cell 時加入判斷
if (isSearch)
使用 copy data
else
使用 original data
這樣就解決了
感謝 1F 給我的靈感 :P
※ 編輯: sorkayi 來自: 122.117.2.251 (10/12 10:11)