gpt4 book ai didi

swift - 扩展的静态函数的派生类型

转载 作者:行者123 更新时间:2023-11-28 06:20:35 30 4
gpt4 key购买 nike

我想制作一个方法来返回特定类的所有 NSManagedObject 作为扩展:

extension NSManagedObject {
static func getAll() -> [NSManagedObject]? {
// code
}
}

如何指定返回对象的确切类型?因此,对于 Animal 类,我可以在下一个示例中推断类型:

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()

关于swift - 扩展的静态函数的派生类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43694496/

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