使用 swift 和市场查找附近的酒吧
Find nearby bars using swift and market
我有这段代码,我想将从 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
定义为 Class 属性。
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)
}
}
}
我有这段代码,我想将从 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
定义为 Class 属性。
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)
}
}
}