使用 MagicalRecord 导入数据
Posted
技术标签:
【中文标题】使用 MagicalRecord 导入数据【英文标题】:Importing data with MagicalRecord 【发布时间】:2013-08-09 13:38:50 【问题描述】:我遇到了一个奇怪的错误(EXC_BAD_ACCESS by CFStringGetLength within NSManagedObject(MagicalRecord)MR_executeFetchRequest:inContext:) 尝试从 JSON 文件导入数据时我无法理解...
NSManagedObjectContext *opContext = [NSManagedObjectContext MR_contextForCurrentThread];
NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"DefaultData"
ofType:@"json"];
NSData *data = [NSData dataWithContentsOfFile:jsonPath];
NSError *parseError;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&parseError];
NSArray *dataTypes = [json objectForKey:@"dataTypes"];
[MagicalRecord saveWithBlockAndWait:^(NSManagedObjectContext *localContext)
for (NSDictionary *obj in dataTypes)
[BTDataType MR_importFromObject:obj inContext:localContext];
];
NSError *saveError;
[opContext save:&saveError];
实体很简单,只有两个属性:importKey(int16)和name(String)...
JSON 就像...
"dataTypes":[
"importKey":1000,
"name":"DataType A"
,
"importKey":1001,
"name":"DataType B"
,
"importKey":1002,
"name":"DataType C"
,
"importKey":1003,
"name":"DataType D"
]
【问题讨论】:
【参考方案1】:我也有同样的问题。我可以通过在 Xcode 中选择我的实体然后添加 userInfo 键/值来解决它。所以对你来说,你会想要添加一个键/值'relatedByAttribute':'importKey'
。
看我的回答https://***.com/a/18370739/442695
【讨论】:
以上是关于使用 MagicalRecord 导入数据的主要内容,如果未能解决你的问题,请参考以下文章
如何在不阻塞 UI 的情况下正确使用 MagicalRecord 从 Web 服务导入数据