在通用函数中创建 NSFetchRequest<T> 时出错

问题描述

我想要一个通用函数来返回一个 CoreData 对象:

func getManagedobject<T: NSManagedobject>(context: NSManagedobjectContext) -> T
{
    let fetchRequest: NSFetchRequest<T> = T.fetchRequest()  // ERROR
    ...
}

但我得到 Cannot assign value of type 'NSFetchRequest<NSFetchRequestResult>' to type 'NSFetchRequest<T>

我尝试添加 where,但没有帮助。这只会添加警告 Redundant conformance constraint 'T': 'NSFetchRequestResult':

func getEntity<T: NSManagedobject>(context: NSManagedobjectContext) -> T where T:NSFetchRequestResult

有效的是:

let fetchRequest: NSFetchRequest<NSFetchRequestResult> = T.fetchRequest()

但是为什么我的第一次尝试没有成功?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)