xcode – 对于使用Core Data的几个不同的提取重用NSFetchRequest有什么不好吗?

xcode – 对于使用Core Data的几个不同的提取重用NSFetchRequest有什么不好吗?,第1张

概述我的问题: 对于使用Core Data的几个不同的提取重用NSFetchRequest有什么不好吗? 示例代码: NSFetchRequest *request = [[NSFetchRequest alloc] init];NSEntityDescription *logEntity = [NSEntityDescription entityForName:@"LogEntry" inMan @H_419_4@ 我的问题:
对于使用Core Data的几个不同的提取重用NSFetchRequest有什么不好吗?

示例代码:

NSFetchRequest *request = [[NSFetchRequest alloc] init];NSEntityDescription *logEntity = [NSEntityDescription entityForname:@"LogEntry" inManagedobjectContext:context];[request setEntity:logEntity];NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"dateTimeAction" ascending:NO]; // ascending NO = start with latest date[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];nspredicate *predicate = [nspredicate predicateWithFormat:@"status == %@",@"op tijd"];[request setPredicate:predicate];[request setFetchlimit:50];NSError *error = nil;NSInteger onTimeCount = [context countForFetchRequest:request error:&error];nspredicate *predicate1 = [nspredicate predicateWithFormat:@"status == %@",@"uitgesteld"];[request setPredicate:predicate1];[request setFetchlimit:50];NSInteger postponedCount = [context countForFetchRequest:request error:&error];nspredicate *predicate2 = [nspredicate predicateWithFormat:@"status == %@",@"gemist"];[request setPredicate:predicate2];[request setFetchlimit:50];NSInteger missedCount = [context countForFetchRequest:request error:&error];
@H_419_4@解决方法 这不是问题,但在示例中,它并没有获得太多(只是一些代码简洁.)创建获取请求最昂贵的部分是解析谓词格式字符串.

如果您经常调用的代码被调用,并且您希望加快速度,那么可以尝试以下方法:

>只创建一次所有谓词和获取请求:可能在dispatch_once()块中并静态存储它们;或者在构造函数中并存储在对象字段中
>不要指定排序描述符,因为如果您只关心计数,顺序无关紧要
>如果实际谓词比显示的更复杂或更灵活,请使用替换变量创建一个通用模板谓词,并使用predicateWithSubstitutionVariables:生成指定的副本.
>为了更加简洁,请使用模型编辑器在对象模型中定义该模板,并使用fetchRequestFromTemplateWithname:substitutionVariables:来创建获取请求.

如果你愿意,我可以给你一些示例代码.

@H_419_4@ @H_419_4@ @H_419_4@ @H_419_4@ 总结

以上是内存溢出为你收集整理的xcode – 对于使用Core Data的几个不同的提取重用NSFetchRequest有什么不好吗?全部内容,希望文章能够帮你解决xcode – 对于使用Core Data的几个不同的提取重用NSFetchRequest有什么不好吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1019138.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存