Re: [問題] 如何將解析後的資料存到CoreData

看板MacDev作者 (天天)時間11年前 (2014/03/04 23:22), 編輯推噓4(407)
留言11則, 2人參與, 最新討論串2/2 (看更多)
先在這邊說點東西 因為我看不太出來你這些東西塞完資料要做甚麼 是要預留資料在CoreData內?? 還是只是在程式開啟的時候如果是無網路狀態下會有一些資料顯示在畫面上?? 另外看到一些東西覺得很麻煩的東西提出來說一下 saveData.titleID1 = [NSNumber numberWithInteger:1]; 這種東西起直接寫成以下即可 這樣簡潔很多也好讀很多 saveData.titleID1 = @1; 如果只是第二點的話,個人建議去開一個NSObject 去把你的東西結構化 然後在把它存成一個array在裡面就好了 這樣你要呼叫的時候也不再需要一個 int i = 1;這東西了 也不用說有幾個項目你就要幾個title1 ※ 引述《BS0824 (Bright_Sky)》之銘言: : 如題,想請問各位先進,目前小弟程式完成從後台撈json資料,解析並顯示於螢幕上 : 不過想從解析完的資料(有NSMutableArray也有NSDictionary)儲存到CoreData : 達成離線瀏覽,不過遇問題如下 : (1)CoreData是否能動態產生Entity? : 假設我要存的Array、object model如下 : ---------------------------------------------- : MainViewItem *mData = [[MainViewItem alloc]init]; : mData.titleID = [[arr objectForKey:@"id"] integerValue]; : mData.title = [arr objectForKey:@"title"]; : mData.unRead = [[arr objectForKey:@"unread"] integerValue]; : Array[1]:mData.titleID = 1 : mData.title = @"分類標題1" : mData.unread = 0; : Array[2]:mData.titleID = 2 : mData.title = @"分類標題2" : mData.unread = 9; : . . : . . : ---------------------------------------------- : 如果只有兩個,那我的Entity只要做兩個就好,那如果我要存10個以上或是不確定個數 : 要如何下手? : (2)CoreData該如何存解析過後的json(Array、Dictionary)? : 或是直接把原始的json存入CoreData? : #新增1----------------------- : 關於第一點,我剛剛想到解法如附圖 : http://ppt.cc/1BhQ : 一個Entity中,名為title/titleID/unRead的Attribute各有7個, : #新增2----------------------- : 目前遇到一個問題,假設我加入兩筆資料 : AppDelegate *appDelegate = [UIApplication sharedApplication].delegate; : NSManagedObjectContext *context = [appDelegate managedObjectContext]; : OfflineMain *saveData = [NSEntityDescription : insertNewObjectForEntityForName:@"OfflineMain" inManagedObjectContext:context]; : saveData.title1 = @"測試1"; : saveData.titleID1 = [NSNumber numberWithInteger:1]; : saveData.unRead1 = [NSNumber numberWithInteger:3];; : saveData.title2 = @"測試2"; : saveData.titleID2 = [NSNumber numberWithInteger:2]; : saveData.unRead2 = [NSNumber numberWithInteger:9];; : 第一次存入並查詢時只出現第一筆"測試1"的資料,然後第二次存入再查詢時就出現 : "測試1"、"測試2"的資料,為何不是第一次就全部顯示我所儲存的資料呢? : 請問我該如何讓儲存的資料一次顯示? : 程式碼:http://ppt.cc/Kwqr : 感謝大家! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.180.81

03/05 09:43, , 1F
抱歉我說明的不好QQ我的用意是要將資料存入手機中,讓
03/05 09:43, 1F

03/05 09:44, , 2F
下次程式開啟時,無網路情況下可以有資料能顯示
03/05 09:44, 2F

03/05 09:45, , 3F
以你的情況,如果這些cache資料有需要再做些例如select
03/05 09:45, 3F

03/05 09:46, , 4F
過濾排序的功能,那是可以轉成coredata,不然我覺得你直
03/05 09:46, 4F

03/05 09:47, , 5F
接把json轉成文字檔存起來就好,開啟時讀入顯示,同時去
03/05 09:47, 5F

03/05 09:47, , 6F
網路上抓最新資料
03/05 09:47, 6F

03/05 09:49, , 7F
大大是說archive匯出檔案,然後開啟實在匯入嗎?
03/05 09:49, 7F

03/05 10:46, , 8F
因為理論上你已經有了從json抓出你要的資訊,並顯示到
03/05 10:46, 8F

03/05 10:47, , 9F
view的code,所以你另外寫個從檔案讀入json字串傳入的
03/05 10:47, 9F

03/05 10:48, , 10F
code很快(大概10行而已),這應該是最簡單的方式吧
03/05 10:48, 10F

03/05 11:47, , 11F
收到!來試試看這種方法,感謝大大!
03/05 11:47, 11F
文章代碼(AID): #1J5U-YFg (MacDev)
文章代碼(AID): #1J5U-YFg (MacDev)