创建或正确使用单例的内容

What to create or properly use a singleton

我想分享坐标实例并在 DiscoverDetailVc。我的应用程序上有 2 个位置管理器实例,之后 结合研究和阅读,发现最好的方法是创建每个 VC 将使用的单例。我想出了以下代码,但问题是在 DiscoverDetailVC 上,DiscoverRestaurantTableViewController.shared.coordinates 为零,但是当我从 DiscoverRestaurantVC 打印坐标时,我可以看到坐标值。为了正确处理,我做错了什么。

谢谢

class DiscoverRestaurantTableViewController: UITableViewController, CLLocationManagerDelegate {
    static let shared = DiscoverRestaurantTableViewController()


let locationManager = CLLocationManager()
var coordinates: CLLocationCoordinate2D?


func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

// Default implementation to get the coordinates
coordinates = location.coordinate
}
class DiscoverDetailViewController: UIViewController {

func getDirections (){
let coordinate = DiscoverRestaurantTableViewController.shared.coordinates

 guard let location = coordinate.coordinates  else {return print("booon")}

  }
}

coordinates = location.coordinate更改为DiscoverRestaurantTableViewController.shared.coordinates = location.coordinate

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    //coordinates = location.coordinate 
    DiscoverRestaurantTableViewController.shared.coordinates = location.coordinate
}

但是创建新的 class 和管理单例对象是很好的。在TableViewController.

内创建单例看起来不太好

希望对您有所帮助。