Ios 斯威夫特3。协议中的NSFetchedResultsController属性

Ios 斯威夫特3。协议中的NSFetchedResultsController属性,ios,xcode,core-data,swift3,Ios,Xcode,Core Data,Swift3,我的协议具有NSFetchedResultsController属性 protocol ProtocolName { var frc: NSFetchedResultsController<NSManagedObject> { get } } Xcode生成错误:类型“MyClass”不符合协议“ProtocolName” 是否有正确的方法使用正确的泛型实现协议?I修复了以下问题: protocol ProtocolName { associatedtype T: N

我的协议具有
NSFetchedResultsController
属性

protocol ProtocolName {

  var frc: NSFetchedResultsController<NSManagedObject> { get }

}
Xcode生成错误:
类型“MyClass”不符合协议“ProtocolName”

是否有正确的方法使用正确的泛型实现协议?

I修复了以下问题:

protocol ProtocolName {

  associatedtype T: NSFetchRequestResult

  var frc: NSFetchedResultsController<T> { get }

}
协议协议名{
associatedtype T:NSFetchRequestResult
var frc:NSFetchedResultsController{get}
}

添加
associatedtype
all stars运行良好

后,您需要初始化控制器的一个具体实例,并在实现中返回它(最好延迟实例化)。我的协议有@objc,因为它在@IBOutlet属性上使用,所以我得到“关联类型'T'不能在'@objc'协议内声明”
protocol ProtocolName {

  associatedtype T: NSFetchRequestResult

  var frc: NSFetchedResultsController<T> { get }

}