【发布时间】:2017-09-03 11:25:18
【问题描述】:
是否可以在另一个协议的通用功能中提供确认协议? 我试着让它像这样工作,但这是不可能的,或者我犯了一些错误。
我的代码:
protocol DataModelProtocol {
associatedtype ObjectProtocol: Protocol
func fetchObjects<T: ObjectProtocol>() -> [T]?
func fetch<T: ObjectProtocol>(object: T) -> T?
func delete<T: ObjectProtocol>(allObjectOf type: T.Type)
func insert<T: ObjectProtocol>(_ object: T)
func save<T: ObjectProtocol>(_ object: T)
func update<T: ObjectProtocol>(_ object: T)
func delete<T: ObjectProtocol>(_ object: T)
}
错误信息:
继承自非协议、非类类型'Self.ObjectProtocol'
它只能这样工作,但我想让它更灵活:
protocol DataModelProtocol {
typealias ObjectProtocol = NSManagedObject
...
}
【问题讨论】:
标签: swift generics swift-protocols associated-types