使用swift和market查找附近的酒吧

时间:2018-01-17 20:31:47

标签: ios swift xcode mapkit mklocalsearch

我有这段代码,我想在数组中保存从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)
        }
    }
}

2 个答案:

答案 0 :(得分:1)

当然,你只需要使用单身人士。

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

let sharedNetworkManager = NetworkManager(baseURL: API.baseURL)

class NetworkManager {

    // MARK: - Properties

    let baseURL: URL

    // Initialization

    init(baseURL: URL) {
        self.baseURL = baseURL
    }

}

答案 1 :(得分:0)

您需要将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) } } } 定义为Class Property。

Window > Store Current Layout as Default