扩展的静态函数的派生类型
Derive type for extension's static func
我想制作一个方法 return 特定 class 的所有 NSManagedObject 作为扩展:
extension NSManagedObject {
static func getAll() -> [NSManagedObject]? {
// code
}
}
如何指定 returned 对象的确切类型?因此,对于 class 动物,我可以在下一个示例中推断类型:
let animals = Animal.getAll() // I want to animals already be [Animal]?, not [NSManagedObject]?
您要以相同的方式获取所有对象吗?如果是这样,你可以这样试试:
import UIKit
import CoreData
protocol AllGettable {
associatedtype GetObjectType
static func getAll() -> [GetObjectType]?
}
extension AllGettable {
static func getAll() -> [Self]? {
return []/* fetch your objects */ as? [Self]
}
}
class Animal: NSManagedObject, AllGettable {}
let animals = Animal.getAll()
我想制作一个方法 return 特定 class 的所有 NSManagedObject 作为扩展:
extension NSManagedObject {
static func getAll() -> [NSManagedObject]? {
// code
}
}
如何指定 returned 对象的确切类型?因此,对于 class 动物,我可以在下一个示例中推断类型:
let animals = Animal.getAll() // I want to animals already be [Animal]?, not [NSManagedObject]?
您要以相同的方式获取所有对象吗?如果是这样,你可以这样试试:
import UIKit
import CoreData
protocol AllGettable {
associatedtype GetObjectType
static func getAll() -> [GetObjectType]?
}
extension AllGettable {
static func getAll() -> [Self]? {
return []/* fetch your objects */ as? [Self]
}
}
class Animal: NSManagedObject, AllGettable {}
let animals = Animal.getAll()