无法推断通用参数 'D'。 [OrderBy 错误]
Generic parameter 'D' could not be inferred. [OrderBy Error]
我收到一条错误消息
Generic parameter 'D' could not be inferred Explicitly specify the generic arguments to fix this issue
可能是因为代码是用 swift 3 编写的,现在他们更改了语法,所以如果有人可以帮助我。
这是我的代码:
listMonitor = dataStack.monitorList(From<Task>(), OrderBy(.descending("date")))
当我删除 OrderBy 时它起作用了:
工作代码:
listMonitor = dataStack.monitorList(From<Task>())
监控列表代码:
public func monitorList<D>(_ from: From<D>, _ fetchClauses: [FetchClause]) -> ListMonitor<D> {
CoreStore.assert(
Thread.isMainThread,
"Attempted to observe objects from \(cs_typeName(self)) outside the main thread."
)
return ListMonitor(
dataStack: self,
from: from,
sectionBy: nil,
applyFetchClauses: { fetchRequest in
fetchClauses.forEach { [=13=].applyToFetchRequest(fetchRequest) }
CoreStore.assert(
fetchRequest.sortDescriptors?.isEmpty == false,
"An \(cs_typeName(ListMonitor<D>.self)) requires a sort information. Specify from a \(cs_typeName(OrderBy<D>.self)) clause or any custom \(cs_typeName(FetchClause.self)) that provides a sort descriptor."
)
}
)
}
那是因为编译器不知道如何从您的 OrderBy 参数推断类型。看起来您正在使用 CoreStore,将其添加为标签并添加到说明中。
要解决您的问题,请像这样构建您的查询链:
listMonitor = dataStack.monitorList(From<Task>().orderBy(.descending("date")))
此外,您应该使用 \Task.date
而不是使用 "date" 作为键路径字符串
我收到一条错误消息
Generic parameter 'D' could not be inferred Explicitly specify the generic arguments to fix this issue
可能是因为代码是用 swift 3 编写的,现在他们更改了语法,所以如果有人可以帮助我。
这是我的代码:
listMonitor = dataStack.monitorList(From<Task>(), OrderBy(.descending("date")))
当我删除 OrderBy 时它起作用了:
工作代码:
listMonitor = dataStack.monitorList(From<Task>())
监控列表代码:
public func monitorList<D>(_ from: From<D>, _ fetchClauses: [FetchClause]) -> ListMonitor<D> {
CoreStore.assert(
Thread.isMainThread,
"Attempted to observe objects from \(cs_typeName(self)) outside the main thread."
)
return ListMonitor(
dataStack: self,
from: from,
sectionBy: nil,
applyFetchClauses: { fetchRequest in
fetchClauses.forEach { [=13=].applyToFetchRequest(fetchRequest) }
CoreStore.assert(
fetchRequest.sortDescriptors?.isEmpty == false,
"An \(cs_typeName(ListMonitor<D>.self)) requires a sort information. Specify from a \(cs_typeName(OrderBy<D>.self)) clause or any custom \(cs_typeName(FetchClause.self)) that provides a sort descriptor."
)
}
)
}
那是因为编译器不知道如何从您的 OrderBy 参数推断类型。看起来您正在使用 CoreStore,将其添加为标签并添加到说明中。
要解决您的问题,请像这样构建您的查询链:
listMonitor = dataStack.monitorList(From<Task>().orderBy(.descending("date")))
此外,您应该使用 \Task.date
而不是使用 "date" 作为键路径字符串