使用斯威夫特和市场查找附近的酒吧



我有这段代码,我想将从MKLocalSearch获得的位置保存在一个数组中,以便以后可以使用它们。你有什么想法我该怎么做吗?

func searchForBarsAndRestaurants(searchFor: String){
    let request = MKLocalSearchRequest()
    request.naturalLanguageQuery = typeOfPlace   //or whatever you're searching for
    request.region = MKCoordinateRegionMakeWithDistance(location.coordinate, 300, 300)

    let search = MKLocalSearch(request: request)
    search.start { response, error in
        guard let response = response
        else {
            print("There was an error searching for: (String(describing: request.naturalLanguageQuery)) error: (String(describing: error))")
            return
        }
        print(response.mapItems.count)
        print("There are (response.mapItems.count)" , searchFor)
        for item in response.mapItems {
            // You may be able to match the address to what the geoCode gives you
            // or present the user with a list of options
            print("(String(describing: item.name))")
            var totalDistances: Array<Double> = Array()
            let distance = self.location.distance(from: item.placemark.location!)
            totalDistances += [distance]
            print("distance is " ,distance)
            print(totalDistances.count)
        }
    }
}

当然,你只需要使用单例。

你想要的是使用全局变量。这是如何做到这一点的示例,w

let sharedNetworkManager = NetworkManager(baseURL: API.baseURL)
class NetworkManager {
    // MARK: - Properties
    let baseURL: URL
    // Initialization
    init(baseURL: URL) {
        self.baseURL = baseURL
    }
}

您需要将totalDistances定义为类属性。

var totalDistances: Array<Double> = Array()
func searchForBarsAndRestaurants(searchFor: String){
    let request = MKLocalSearchRequest()
    request.naturalLanguageQuery = typeOfPlace   //or whatever you're searching for
    request.region = MKCoordinateRegionMakeWithDistance(location.coordinate, 300, 300)

    let search = MKLocalSearch(request: request)
    search.start { response, error in
        guard let response = response
        else {
            print("There was an error searching for: (String(describing: request.naturalLanguageQuery)) error: (String(describing: error))")
            return
        }
        print(response.mapItems.count)
        print("There are (response.mapItems.count)" , searchFor)
        for item in response.mapItems {
            // You may be able to match the address to what the geoCode gives you
            // or present the user with a list of options
            print("(String(describing: item.name))")
            let distance = self.location.distance(from: item.placemark.location!)
            self.totalDistances += [distance]
            print("distance is " ,distance)
            print(self.totalDistances.count)
        }
    }
}

相关内容

  • 没有找到相关文章

最新更新