你好,
这是我的第一篇文章,所以如果这已经在某个地方得到了回答,请原谅我(我确实搜索过)。
问题:我有一个 Cocoa 应用程序需要在系统上的多个用户帐户之间共享一个 Core Data 数据库。
想法:我将创建一个守护进程来处理来自用户的请求(跨越用户权限边界)以保存/检索来自 Core Data 的数据。创建在应用程序中使用的共享托管对象上下文,并通过 NSXPCConnection 将该 MOC 传递给守护程序。守护进程将拥有一个完全实现的核心数据堆栈。然后,我可以将在应用程序中创建的 MOC 设置为由守护程序创建的 MOC 的子级。点击保存,我就完成了?
问题:这甚至会起作用吗?这只是一个愚蠢的想法吗?其他解决方案是什么?NSManagedObjectContext 符合 NSCoder 协议,但是为了将它与 XPC 一起使用,我必须对其进行子类化并使其符合 NSSecureCoding 协议?我是否还需要确保我的 ManagedObject 子类符合 NSSecureCoder 协议才能与 NSXPConnection 一起使用?我想我可以一起放弃上下文,只发送托管对象。
我假设 NSXPCConnection 复制对象而不是使用指针?这个对吗?此外,我可能必须牢记性能,因为对象被编码/解码为完全实现的对象并且没有错误。这个对吗?
预先感谢您的帮助。