我一直在避免使用 IOS 核心数据模型,现在遇到了效率问题。如果我想在我的应用程序的随机部分经常检查我的表的计数。我想知道像这样为这种“计数”方法创建上下文、实体和获取请求是轻量级还是昂贵的。如果它很昂贵,我可以将哪些设置为属性并创建一次或作为单例等等。我担心数据模型的动态特性可能需要新的工作对象。
-(NSInteger) count {
NSManagedObjectContext *context = [[MdCoreDataModel sharedInstance] contextFortune];
NSEntityDescription *entityDescription = [NSEntityDescription entityForName: @"MyTable" inManagedObjectContext: context];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:entityDescription];
NSError *error = nil;
NSUInteger countTotal = [context countForFetchRequest: fetchRequest error: &error];
if (error) {
NSString *stringErrorMsg = [NSString stringWithFormat:@"%@\n%@", [error localizedDescription], [error localizedFailureReason]];
NSLog(@"%s %@", __FUNCTION__, stringErrorMsg);
countTotal = 0;
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Debug" message: stringErrorMsg delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alertView show];
}
return countTotal;
}