我写了一个方法
`/// 获取所有数据
// 获取表的数据
// 我使用 Core Data 创建了一个 Person 实体 ,当然还有其他实体
// 我想通过一个方法来获取某个实体的所有数据,于是使用了泛型,下面的是我的方法定义
func getObjects<T: NSManagedObject>()->[T]{
print("\(T.self)") // 这里打印的结果确实是 Person
// 下面这句代码执行后有fetchRequest 对象,但是它是uninitialized 的。
// 如果我把T换成 Person 执行是正确的
// 还有另外一种情况下使用泛型T执行下面的代码是正确的,就是在获取数据之前我调用NSEntityDescription.insertNewObject添加数据,
// 那么使用泛型也能正确执行代码,直接使用泛型就会无效
let fetchRequest: NSFetchRequest = T.fetchRequest()
do {
let result = try self.context.fetch(fetchRequest)
return result as! [T]
} catch {
return []
}
}`
这个是为什么呢?
脑瓜疼了半天了
脑瓜疼完后,,追踪还是找到不到解决方法,最后只能换一种方式创建