hpi*_*que 0 macos core-data ios
我的两个实体是 Book 和 Category。一本书可以有很多分类,一个分类可以有很多书。这些关系在数据模型中被标记为彼此的倒数。
当我更新一本书的类别时,我希望相应类别的书籍会自动更新。换句话说:
Book *book = [Book insertNewObjectIntoContext:context];
Category *category = [Category insertNewObjectIntoContext:context];
[book addCategories:[NSSet setWithObject:category]];
BOOL result = [category.books containsObject:book]; // Should be YES
Run Code Online (Sandbox Code Playgroud)
然而,我进入NO了我的应用程序。books返回一个空集。
我三重检查这些关系是否被标记为反向。这里还有什么可以玩的?或者有什么我想念的吗?
如果我手动设置逆关系会伤害吗?如果我做所有事情就像一个魅力。
反向关系直到运行循环结束才会更新。在这样之后立即调用它不会给它时间更新。
如果您要执行以下操作:
dispatch_async(dispatch_get_main_queue(), ^{
BOOL result = [category.books contains:book];
NSLog(@"Result: %@", result ? @"YES" : @"NO");
});
Run Code Online (Sandbox Code Playgroud)
你会看到你的预期结果。
手动设置反向并没有什么坏处。当一切正常工作时,它会导致周期的浪费,因为 Core Data 必须仔细检查关系,这样你就会看到性能下降。
| 归档时间: |
|
| 查看次数: |
987 次 |
| 最近记录: |