我目前正在开发一款iOS应用程序,它从Internet获取一些JSON并将其打包到Core Data数据库中。我也和MagicalRecord一起工作。
在这种情况下有2个对象:
"网站"的JSON;看起来像这样,只有120个条目,阵列" HazardousMaterials"包含Object" HazardousMaterial"的UID。该网站可以处理:
{
Id: 1,
HazardousMaterials: [
279, 315, 412, 434, 495, 502, 681, 696,
997, 1009, 1094, 1162, 1191, 1391, 1412,
1482, 1755, 1776, 1789, 2037, 2045, 2152,
2186
],
},
现在我下载JSON字典并解析数据:
for (NSDictionary *dictionary in sites) {
Sites *site = [Sites createEntity];
site.uid = [dictionary valueForKey: @"Id"];
NSArray *hazardousMaterials = [dictionary objectForKey: @"HazardousMaterials"];
for (NSNumber *hazardID in hazardousMaterials) {
[site addHazardousMaterialsObject: [HazardousMaterial findFirstByAttribute: @"uid" withValue: hazardID]];
}
}
[self saveContext];
但是这个过程需要100%的CPU,而在iPhone 4(s)或iPod touch这样的老式iPhone上它会在一段时间后冻结,我怎样才能让这个过程更快/更容易?任何想法?