gpt4 book ai didi

ios - 快速转换为泛型类类型

转载 作者:行者123 更新时间:2023-12-01 18:03:41 27 4
gpt4 key购买 nike

我的目标是将从数据库中获取的结果返回到任何给定的类型(模型)。出于某种原因,我收到错误为“使用未声明的类型'模型'”。我在这里想念什么?以及如何实现我的目标。

func fetchData<T>(entity:String, model: T)-> T? {


let request = NSFetchRequest<NSFetchRequestResult>(entityName:entity)
request.returnsObjectsAsFaults = false

do {

let result = try managedObjectContext.fetch(request)
if result.count > 0 {

return result as model // Point that gets the error

}

} catch {

print("Failed to retrive data")
}

return nil

}

最佳答案

没必要投。

根据 Joakim 的回答,我建议使该方法更通用,并且 throw将错误移交给调用者。

使用泛型类型创建获取请求摆脱了类型转换

func fetchData<T : NSFetchRequestResult>(entity:String, model: T.Type) throws -> [T] {
let request = NSFetchRequest<T>(entityName:entity)
request.returnsObjectsAsFaults = false
return try managedObjectContext.fetch(request)
}

并使用它
do {
let result = try fetchData(entity: “Foo”, model: Foo.self)
print(result)
} catch {
print("Failed to retrive data")
}

关于ios - 快速转换为泛型类类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61155804/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com