Я пытаюсь получить MKMapItem.pointOfInterestCategory на бета-версии iOS 13 с помощью этого модульного теста:
func testPointOfInterests() {
let request = MKLocalSearch.Request()
let mkSearchExpectation = expectation(description: "MKLocalSearch")
// Sagrada Família, Barcelone
let coordinate = CLLocationCoordinate2D(latitude: 41.40359499, longitude: 2.17436157)
request.region = MKCoordinateRegion.init(center: coordinate, latitudinalMeters: 1000, longitudinalMeters: 1000)
request.naturalLanguageQuery = "Sagrada Família"
if #available(iOS 13.0, *) {
request.pointOfInterestFilter = MKPointOfInterestFilter(excluding: [.atm])
}
let search = MKLocalSearch(request: request)
search.start { (response, error) in
mkSearchExpectation.fulfill()
XCTAssertNil(error)
XCTAssertNotNil(response)
guard let response = response else {
return
}
for mapItem in response.mapItems {
dump(mapItem)
if #available(iOS 13.0, *) {
if let category = mapItem.pointOfInterestCategory {
print(category)
}
}
}
}
waitForExpectations(timeout: 10.0) {
error in
if let error = error {
XCTFail(error.localizedDescription)
}
}
}
Я получаю соответствующий mapItem, но MKMapItem.pointOfInterestCategory равен nil.
ПохожийТест с использованием приложения Apples Maps показывает, что серверы Apple знают, что церковь Святого Семейства в Барселоне - это церковь.
Что я делаю не так?Мне бы хотелось, чтобы pointOfInterestCategory работала на iOS 13 beta.