gpt4 book ai didi

ios - 我在哪里保存对 GMSMarkers 列表的引用

转载 作者:行者123 更新时间:2023-11-30 12:37:52 26 4
gpt4 key购买 nike

我正在 Swift 3 中构建一个 iOS 应用程序,该应用程序使用在我的 ViewController 中的 map 上显示的 GMSMarker 列表。标记列表是由我的模型 Store

的数组组成的

mi ViewController中的代码是:

class ViewController: UIViewController {

// MARK: - IBOutlets

@IBOutlet weak var mapView: GMSMapView!
@IBOutlet weak var tableView: UITableView!


var stores: [Store]!


override func viewDidLoad() {
super.viewDidLoad()
stores = Store.listStores()
}

...
...
...
}

我需要知道这些标记的引用,因为我想在应用中发生某些情况时更改它们的snippet 信息。

问题是我不知道按照MVC(模型、 View 、 Controller )的概念保存引用的最佳方法是什么,我将解释我的两个选项想过。

  1. ViewController中创建一个全局数组,然后调用我的函数为每个store创建一个GMSMarker存储在Store数组中,并将其保存在全局数组中。
  2. 在我的 Store 类中导入 GoogleMaps 并创建一个 GMSMarker 属性。在 init() 中初始化 GMSMarker 并将其分配给创建的属性。这样做时,我将始终引用标记,因此我认为这是低效的,因为标记仅在一个 ViewController 中使用,但 Store 对象在不同部分中使用应用程序的

哪一种是最好的方法?还有其他方法可以做得更好吗?

最佳答案

尝试将有关该标记的相关信息添加到可以存储到 Store 模型中的自定义结构或类中,然后您可以在 Controller 中创建一个方法,该方法返回包含存储信息的构建标记。没关系,因为您将 Google 服务与您自己的模型断开连接。因此,如果您要将 Google map 更改为其他 map 框架,则只需更改标记生成器方法。

关于ios - 我在哪里保存对 GMSMarkers 列表的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42631586/

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