gpt4 book ai didi

objective-c - 在核心数据中查找或创建对象的标准?

转载 作者:行者123 更新时间:2023-12-03 17:38:51 25 4
gpt4 key购买 nike

在核心数据中是否有实现“查找或创建对象”的标准或首选方法?

我计划在 NSManagedObject 子类中使用类方法,但想确保获得最佳性能。

例如,缓存提取以避免过多地访问磁盘是否有意义,还是浪费时间?

最佳答案

类方法很好。您必须点击磁盘才能检索,如果不成功则再次插入。我没有看到性能受到影响。

如果你这样做了 1000 次,当然在内存中执行会更有效。获取所有相关数据,甚至只是相关字段(使用 NSDictionaryResultType)并使用谓词在内存中进行过滤。如果您使用 KVC(键值编码),这会非常高效和优雅 - 我已经使用了类似以下内容的 100.000 条记录:

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:"Entity"];
NSArray *result = [context executeFetchRequest:request error:nil];

NSArray *allIDs = [result valueForKeyPath:@"idAttribute"];
NSArray *existingIDs = [allIDs filteredArrayUsingPredicate:
[NSPredicate predicateWithFormat:@"self in %@", idsToCheck]];
NSArray *newIDs = [idsToCheck filteredArrayUsingPredicate:
[NSPredicate predicateWithFormat:@"self not in %@" existingIDs];

关于objective-c - 在核心数据中查找或创建对象的标准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27175598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com