我有一个简单的表格,其中包含一个名为"属于Transformable的详细信息&#34 ;.
现在这个属性需要几乎每3或4秒更新一次,因为有一些监控代码会在给定时间后更新。基本上NSDictioanry对象每次都会从应用程序的不同点更新,并在Core Data中作为可转换属性进行更新。
我有用户报告电话被加热,因为我实施了这个。在我使用NSUserDefaults之前,因为数据不是那么大但是由于一些结构上的变化,我不得不把它放在核心数据中。我检查了CPU时间分析器,找不到任何其他方法的递归调用。
因此核心数据获取和保存操作每隔3到4秒就会进行一次。
我唯一能想到的是将保存操作放在AppDelegate的applicationWillTerminate中。
但我想知道是否有办法以不同的方式做到这一点。正如一些文章所建议的那样,应用程序终止可能不会被调用。有没有办法减少Fetch和保存操作的开销?
NSArray *results = [[[APPDEL managedObjectContext] executeFetchRequest:[Info fetchRequest] error:&error] mutableCopy];
Info *userInfo = [results firstObject];
if (userInfo.userCredentials)
{
userInfo.userDetails = (NSDictionary *)_globalAppCurrentStateDict;
//[[APPDELEGATE managedObjectContext] save:nil];
}
将保存转移至将立即终止。将检查性能。