我正在尝试在协议扩展中使用“Self.displayOrder”,但它会引发以下错误“线程 1:致命错误:无法从 KeyPath Swift.ReferenceWritableKeyPath 中提取字符串”
这是代码
protocol Listable where Self: NSManagedObject {
static func sortedFetchRequest() -> NSFetchRequest<Self>
var displayOrder: Int { get set }
}
extension Listable {
static func sortedFetchRequest() -> NSFetchRequest<Self> {
let req: NSFetchRequest<Self> = NSFetchRequest(entityName: String(describing: Self.self))
req.sortDescriptors = [NSSortDescriptor(keyPath: \Self.displayOrder, ascending: true)]
return req
}
}
final class OwnerModel: NSManagedObject, Identifiable, Listable {
@NSManaged var displayOrder: Int
}