gpt4 book ai didi

cocoa - 新的核心数据对象没有出现在 NSArrayController 中排列的对象中

转载 作者:行者123 更新时间:2023-12-03 16:14:49 24 4
gpt4 key购买 nike

当我在 Core Data 托管对象上下文中插入一个新对象时,不久之后尝试在 NSArrayController 中查找这个新对象(通过绑定(bind)与 ManagedObjectContext 连接),我找不到它。我用一种方法进行创建和搜索。

我现在的问题。新插入的对象需要多长时间才能出现在 NSArrayControllers returnedObject 数组中?

更新:这是插入和获取新对象的代码

NSEntityDescription *entity = [[[self managedObjectModel] entitiesByName] objectForKey:@"EntityName"];
NSManagedObject *object = [[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:[self managedObjectContext]];
...
[[self managedObjectContext] processPendingChanges];

[arrayController fetch:nil];
NSArray* objects = [arrayController arrangedObjects]; //the new object is not present in the array

最佳答案

这不是“多长时间”的问题,而是“在什么时候”的问题。有足够多的区别,研究它很重要。 :-)

通常数组 Controller 会在下一个运行循环中自动更新(在本例中重新获取其内容),但从技术上讲是“在未来的某个运行循环中”。如果您希望它们在插入内容后立即更新,请向您的 MOC 发送 -processPendingChanges,然后要求数组 Controller -fetch:

您在Core Data documentation中读到的第一件事是它是一个高级 Cocoa 主题,其必备知识包括键值绑定(bind)和键值观察。在理解 KVC/KVO(和 Cocoa Bindings 层)时可以找到导致您提出这个问题的缺失知识。

关于cocoa - 新的核心数据对象没有出现在 NSArrayController 中排列的对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4538704/

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