我的Entity中有一些瞬态属性是从另一个瞬态属性派生的(调用是X)。当我进行提取时,它似乎尝试以无特定顺序加载所有属性,因此如果X需要一些时间来计算,其他派生属性会尝试使用X并且它为null,因此会导致问题。
有没有办法强制Core Data确保在其他属性可以读取之前加载一个属性?或者在属性X加载后强制其他属性重新加载?有人会推荐的任何其他技术吗?我在由NSFetchedResultsController支持的iOS tableView中使用它。
答案 0 :(得分:0)
否则您无法强制属性按顺序“加载”,因为属性不会加载。您在此处初始化对象而不是在过程数据库中读取单元格。
我猜你试图根据外部对象的属性或计数来计算某些值。如果是这样,那么你可以在其他对象出现故障时严重减速,以便可以访问它们的值。
如果是这样,那么你就会遇到数据模型设计问题。我从未见过如此复杂的瞬态值,其计算会影响操作。您可能需要将其拆分,甚至将其移动到自己的对象。
E.g假设您有一个模拟一组具有Person
个对象的数据模型。您希望每个Person
对象的某些行为发生变化,具体取决于它们的人数。因此,当每个人少于五个时,如果有6到10,那么“X”就是“Y”,依此类推。
在这种情况下,最好创建一个与跟踪Person
个对象总数的所有Person
个对象相关的第二个实体。然后获取所有Person
个对象的计数或其中一个Person
实体属性的集合总和变得快速而微不足道。