我将尝试设置我的应用程序,以便它可以使用 Apple map 或 Google map ,所以我想我会有这样的东西:
class AppleMap: MKMapView, MyMapProtocol {
var delegate: MyMapDelegateProtocol
...
}
class GoogleMap: GMSMapView, MyMapProtocol {
var delegate: MyMapDelegateProtocol
...
}
MKMapView 和 GMSMapView 都有委托(delegate)。许多对这些委托(delegate)的调用将被翻译并传递给 Apple/GoogleMap 委托(delegate),但有些需要单独处理(例如 viewForAnnotaion)
问题是 MKMapViewDelegate 和 GMSMapViewDelegate 应该在哪里实现?
我在考虑 AppleMap 和 GoogleMap 类,但我认为这是一件相当常见的事情(包装一个在适配器类中有委托(delegate)的类),但我没有看到任何最佳实践记录。
您可以将它们实现为独立的模型类,以便它们的代码与应用程序的其余部分保持封装。这些对象的变量可以存在于自定义 MapChildViewController 对象中,该对象只为您管理这些 map 之间的逻辑。允许您在应用程序中重用此逻辑。这听起来怎么样?
Tôi là một lập trình viên xuất sắc, rất giỏi!