你如何编码和解码一个
MTLSharedTextureHandle
和
MTLSharedEventHandler
这样就可以通过
xpc_dictionary
我正在开发的一个macOS应用程序广泛使用XPC服务,并使用基于C的API实现(即。:
xpc_main, xpc_connection, xpc_dictionary...
)这在当时是有意义的,因为某些物体
IOSurfaces
,不支持
NSCoding/NSSecureCoding
IOSurfaceCreateXPCObject
.
在macOS 10.14中,苹果推出了新的类,用于在进程之间共享金属纹理和事件:
和
MTLSharedEventHandle
. 这些类支持
NSSecureCoding
我想我可以用
[NSKeyedArchiver archivedDataWithRootObject:requiringSecureCoding:error]
把他们变成
NSData
对象,然后可以存储在
,但当我尝试这样做时,会出现以下异常:
Caught exception during archival:
This object may only be encoded by an NSXPCCoder.
(nsxpccorder是一个私有类。)
MTL共享文本句柄
和
. 我可以改用新的
NSXPCConnection
但是我已经在C接口上构建了大量的代码,所以我不想做这个转换。
有没有办法将这两个类中的任何一个归档到可以存储在