作者tentenlee (天天)
看板MacDev
标题Re: [问题] 如何将解析後的资料存到CoreData
时间Tue Mar 4 23:22:08 2014
先在这边说点东西
因为我看不太出来你这些东西塞完资料要做甚麽
是要预留资料在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
1F:推 BS0824:抱歉我说明的不好QQ我的用意是要将资料存入手机中,让 03/05 09:43
2F:→ BS0824:下次程式开启时,无网路情况下可以有资料能显示 03/05 09:44
3F:推 Blueshiva:以你的情况,如果这些cache资料有需要再做些例如select 03/05 09:45
4F:→ Blueshiva:过滤排序的功能,那是可以转成coredata,不然我觉得你直 03/05 09:46
5F:→ Blueshiva:接把json转成文字档存起来就好,开启时读入显示,同时去 03/05 09:47
6F:→ Blueshiva:网路上抓最新资料 03/05 09:47
7F:推 BS0824:大大是说archive汇出档案,然後开启实在汇入吗? 03/05 09:49
8F:推 Blueshiva:因为理论上你已经有了从json抓出你要的资讯,并显示到 03/05 10:46
9F:→ Blueshiva:view的code,所以你另外写个从档案读入json字串传入的 03/05 10:47
10F:→ Blueshiva:code很快(大概10行而已),这应该是最简单的方式吧 03/05 10:48
11F:→ BS0824:收到!来试试看这种方法,感谢大大! 03/05 11:47