【发布时间】:2017-03-06 17:12:42
【问题描述】:
我正在 Swift 3 中构建一个 iOS 应用程序,它使用在我的 ViewController 的地图上显示的 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(模型、视图、控制器)的概念保存引用的最佳方法是什么,我将解释我的两个选项已经想过了。
- 在
ViewController中创建一个全局array,然后调用我的函数为Store数组中的每个store创建一个GMSMarker,并将其保存在全局array中。 - 在我的
Store类中导入GoogleMaps并创建一个GMSMarker属性。在init()中初始化GMSMarker并将其分配给创建的属性。这样做我将始终引用标记,因此我认为这是低效的,因为标记仅用于一个ViewController,但Store对象用于应用程序的不同部分
哪一个是最好的方法?有没有其他方法可以做得更好?
【问题讨论】:
标签: ios swift model-view-controller