gpt4 book ai didi

ios - 在 "let"常量变量中赋值,它在 cocoapods 中

转载 作者:行者123 更新时间:2023-11-28 12:16:18 26 4
gpt4 key购买 nike

我的应用程序有一个第三方“Mapbox”,它是通过 pod 导入的。

现在我想用我的 API 响应更改值。但是可以分配,因为它是一个“let”常量。

所以我创建了该类的“扩展”文件,具有以下计算属性来设置值。

extension RouteStep {
var maneuverLocation: CLLocationCoordinate2D {
get
{
return self.maneuverLocation
}
set
{
self.maneuverLocation = newValue
}
}
}

我正在传递这样的值:

 let step : RouteStep = RouteStep.init(json: jsonObject)
step.maneuverLocation = maneuverLocation

但它给了我无限类型的错误,如 enter image description here下图

最佳答案

很明显为什么您会陷入无限循环,但即使您能够以某种方式解决它,这里的问题是 Swift 扩展不支持存储的属性。

您可以拥有计算属性但不能拥有存储属性,无论如何都不是直接的方式。

如果 RouteStep 是从 Obj-C 运行时派生的,那么您可以使用关联的属性作为解决方案。这post说明如何执行此操作。

我想,如果您能解释您的意思以及您实际想要实现的目标,那么社区可以更好地帮助您。

Now I want to change the value with my API response. But wnable to assign as it is a "let" constant.

编辑:(在 OP 对问题进行了更多解释之后)

如果 maneuverLocation 变量在 SDK 中声明为 let,则无法在扩展中更改它。如果 RouteStep 是一个类并提供一个 init,如果它是一个值类型,你可以将它子类化,我想你可以在它的扩展中添加便利的 init。一旦创建实例,就无法更改 let 变量中的值。它必须在 init 中完成。

关于ios - 在 "let"常量变量中赋值,它在 cocoapods 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46461652/

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