gpt4 book ai didi

xcode - 将 NSArrayController 绑定(bind)到 Core Data 文档的托管对象上下文的新方法是什么?

转载 作者:行者123 更新时间:2023-12-03 23:28:17 26 4
gpt4 key购买 nike

在 Xcode 为 OS X 应用程序添加 Storyboard 之前,您可以通过绑定(bind) Managed Object Context 将数组 Controller 连接到文档的托管对象上下文。阵列 Controller 的 File's OwnerModel Key PathmanagedObjectContext .有了 Storyboard,就没有更多 File's Owner那么你从哪里得到上下文呢?

Apple 的文档在这方面落后,在 Xcode 中没有任何明显的地方可以绑定(bind)。显然我可以退回到 Non-Storyboard 路线并使用旧方法,但必须有一种新方法。

最佳答案

使用默认的 Xcode 生成项目并包含 CoreData 会将 managedObjectContext AppDelegate 上的成员.您可以将以下代码添加到您的 ViewController,然后使用 managedObjectContext作为绑定(bind)到 ViewController 的“模型 key 路径”为您的NSArrayController .

lazy var managedObjectContext: NSManagedObjectContext = { 
return (NSApplication.sharedApplication().delegate
as? AppDelegate)?.managedObjectContext }()!

这只是创建一个重定向到您的实际 MOC 存储位置的成员。这很有用,因为 NSArrayController 绑定(bind)发生在 viewDidLoad() 之前。 ,因此为什么一个实例成员是不够的。另外,如果你想重构为单例 CoreDataManager类,您可以更改重定向到的位置。此外,您可以将其添加为类扩展以启用所有 ViewControllers访问您的 MOC。

应要求提供的 Objective-C 版本:
@interface MyViewController ()

@property (nonatomic, readonly) NSMangedObjectContext* managedObjectContext;

@end

@implementation MyViewController

- (NSManagedObjectContext*)managedObjectContext
{
return ((AppDelegate*)([NSApplication sharedApplication].delegate)).managedObjectContext;
}

...

@end

关于xcode - 将 NSArrayController 绑定(bind)到 Core Data 文档的托管对象上下文的新方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28184218/

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