无法推断出“Optional<Array<_>>”的通用参数“T”

Generic parameter 'T' could not be inferred for 'Optional<Array<_>>'

提问人:bruno 提问时间:11/10/2023 最后编辑:Joakim Danielsonbruno 更新时间:11/10/2023 访问量:34

问:

我收到此错误

无法将“Optional<Array<_>>”类型的值转换为指定类型 '[FoodEntity]'。无法推断通用参数“T”

 func fetch<T:NSFetchRequestResult>(entityName:String) throws -> [T] {
      
        let request = NSFetchRequest<T>(entityName: entityName)
        
        let entities = try container.viewContext.fetch(request)
        
        return entities
        
    }

但我在通话中有类型[FoodEntity]

    let foodArray:[FoodEntity] = try PersistenceController.shared.fetch(entityName: "FoodEntity")
Swift 泛型 核心数据

评论

0赞 Paulw11 11/10/2023
您的左右两侧之间的可选性不匹配。尝试let foodArray:[FoodEntity]? = ...

答:

2赞 Joakim Danielson 11/10/2023 #1

泛型类型应扩展NSManagedObject

func fetch<T:NSManagedObject>(entityName:String) ...

评论

0赞 bruno 11/10/2023
我在线崩溃let entities = try container.viewContext.fetch(request)
0赞 Joakim Danielson 11/10/2023
错误消息,什么样的崩溃?
0赞 bruno 11/10/2023
将此标记为正确答案,因为崩溃的原因在其他地方