NSManagedObject
protocol Managed
{
associatedtype ManagedType: NSManagedObject = Self
static var entityName : String { get }
static func all(in context: NSManagedObjectContext) throws -> [ManagedType]
}
extension Managed where Self : NSManagedObject {
static var entityName : String { return String(describing:self) }
static func all(in context: NSManagedObjectContext) throws -> [ManagedType] {
let request = NSFetchRequest<ManagedType>(entityName: entityName)
return try context.fetch(request)
}
}
只需将一致性添加到
Managed
为了你所有的朋友
被管理对象
子类,然后您可以使用
let persons = Person.all(in: context)
let hotels = Hotel.all(in: context)