如何将给定对象强制转换为类型和协议,以便调用某些定义为扩展名的方法
例如:
extension Identifiable where Self: NSManagedObject,Self: JsonParseDescriptor { func someMethod() { } }
现在我有一个从Core数据中检索到的对象,我想将它转换为上述协议,以便在其上调用someMethod.我可以使用协议< Identifiable,JsonParseDescriptor>转换为协议.,但是如何在其中包含NSManagedObejct类型呢?
谢谢
解决方法
你正在寻找什么叫做具体的同类型要求.不幸的是,它在Swift中还不可能.
有关详细信息,请参见SR-1009和SR-1447.你也应该结账this answer.
同时,您可以使用您需要的方法使用伪协议扩展NSManagedObject:
protocol _NSManagedObject { //the methods you want } extension NSManagedObject: _NSManagedObject {} extension Identifiable where Self: _NSManagedObject,Self: JsonParseDescriptor { func someMethod() { } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。