我正在 Swift 3 中构建 iOS 应用程序,该应用程序使用我GMSMarker
地图上显示的ViewController
列表。标记列表由我的模型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(模型,视图,控制器)的概念保存参考的最佳方法是什么,我将解释两个选项我我想。
array
中创建全局ViewController
,然后调用我的函数为GMSMarker
数组中的每个store
创建Store
并将其保存在全球array
。GoogleMaps
课程中导入Store
并创建GMSMarker
媒体资源。在init()
初始化GMSMarker
并将其分配给创建的属性。这样做我总是会引用标记,因此我觉得这样做效率很低,因为标记仅用于一个ViewController
,但Store
对象用于应用程序的不同部分哪一个是最好的方法?还有其他方法可以做得更好吗?
答案 0 :(得分:0)
尝试将有关该标记的相关信息添加到您可以存储到Store模型的自定义结构或类中,然后您可以在控制器中创建一个方法,该方法返回包含存储信息的内置标记。没关系,因为您将Google服务与自己的型号断开连接。因此,如果您要将Google地图更改为其他地图框架,则只需更改标记构建器方法。