gpt4 book ai didi

swift - 通过 KeyPath 设置数组的值

转载 作者:行者123 更新时间:2023-11-30 10:40:18 38 4
gpt4 key购买 nike

我正在尝试通过使用 KeyPaths 来更新存储在类的数组属性中的值。这是我的代码:

func listenAndUpdateDocuments<T: JSONDecodable>(
_ property: ReferenceWritableKeyPath<MyModel, [T]?>,
from model: MyModel) {
guard let reference = reference else {
return
}
guard listener == nil else {
return
}
listener = backendClient.listenToDocuments(reference) { [weak model] (result: Result<[T], RequestError>) in
switch result {
case .success(let value):
model?[keyPath: property] = value
case .failure:
model?[keyPath: property] = []
}
}
}

问题是当我像这样调用这个函数时:

myListener.listenAndUpdateDocuments(\.viewers, from: self)

其中 viewers 的类型为 [ViewersModel],它总是返回以下错误:

Type of expression is ambiguous without more context

如何解决这个问题?我有一个类似版本的代码,但其中 property 参数不是数组,并且可以工作。

最佳答案

我遇到了类似的问题:

_ = Token.query(on: req).filter(\.expiry < Date()).delete()

我找到的解决方案是使用更新的 API 来处理我的请求参数。

_ = Token.query(on: req).filter(\.expiry, .lessThan, Date()).delete()

它与键路径本身的关系比我想象的要小!

关于swift - 通过 KeyPath 设置数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56973433/

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