保存在魔法记录中?
Posted
技术标签:
【中文标题】保存在魔法记录中?【英文标题】:Saving in Magical Record? 【发布时间】:2015-09-26 17:43:06 【问题描述】:我已经编写了一个代码来解析一些 JSON 并通过神奇的记录将数据保存到数据库:
NSMutableArray *resultsArray = [NSMutableArray array];
NSArray *timesArray = JSON[@"results"];
for (NSDictionary *record in timesArray)
Time *newTime = [Time MR_createEntity];
newTime.distance = record[@"distance"];
newTime.time = record[@"time"];
newTime.date = [[MMXFormatter instance] dateFromString:record[@"date"]];
newTime.createdAt = [[MMXFormatter instance] dateFromString:record[@"createdAt"]];
newTime.updatedAt = [[MMXFormatter instance] dateFromString:record[@"updatedAt"]];
[resultsArray addObject:newTime];
[MagicalRecord saveWithBlock:nil];
上面的代码不会保存到持久存储中。好久没用魔法唱片了,好像储蓄和以前不一样了。我现在如何保存我的数据?
【问题讨论】:
【参考方案1】:如果你想使用saveWithBlock
,代码应该是
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext)
Time *newTime = [Time MR_createEntityInContext:localContext];
newTime.distance = ...
...
另一种方法是将saveWithBlock
替换为MR_saveToPersistentStoreAndWait
NSMutableArray *resultsArray = [NSMutableArray array];
NSArray *timesArray = JSON[@"results"];
for (NSDictionary *record in timesArray)
Time *newTime = [Time MR_createEntity];
newTime.distance = record[@"distance"];
newTime.time = record[@"time"];
newTime.date = [[MMXFormatter instance] dateFromString:record[@"date"]];
newTime.createdAt = [[MMXFormatter instance] dateFromString:record[@"createdAt"]];
newTime.updatedAt = [[MMXFormatter instance] dateFromString:record[@"updatedAt"]];
[resultsArray addObject:newTime];
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
如果想进一步了解 CoreData 和 MegicalRecord,我建议您阅读本教程
http://code.tutsplus.com/tutorials/easy-core-data-fetching-with-magical-record--mobile-13680
【讨论】:
非常好的教程,但老实说,您在答案中提供的代码更适合我正在寻找的内容。你知道任何展示 MR 和在后台线程上工作的好教程吗?到目前为止,我能找到的关于 MR 的所有信息都在主线程上 官网是找这类教程的好地方,github.com/magicalpanda/MagicalRecord/blob/master/Docs/…或github.com/magicalpanda/MagicalRecord/blob/master/Docs/…以上是关于保存在魔法记录中?的主要内容,如果未能解决你的问题,请参考以下文章