Дополнительное наблюдение для всех, кто борется с подобной проблемой.
Учитывая предложения pbasdf и Джерри, приведенные выше, по крайней мере, в моем случае, нет причин, по которым регион должен быть круглым.Я напишу имя, обозначающее почти прямоугольную область.Я провел несколько тестов со значениями широты и долготы.Эти значения широты и долготы можно масштабировать до прямоугольника, охватывающего круговой радиус, указанный пользователем.Один градус широты составляет около 69 миль, а один градус долготы на широте Чикаго - около 51 мили.Я использовал следующее:
var myUserLatitude : CLLocationDegrees!
var myUserLongitude : CLLocationDegrees!
В файле инициализации для представления:
guard let userLatitude = locationManager.location?.coordinate.latitude else {return}
guard let userLongitude = locationManager.location?.coordinate.longitude else {return}
myUserLatitude = userLatitude
myUserLongitude = userLongitude
Внутри создания переменной fetchedResultsController:
let latitudeMinPredicate = NSPredicate(format: "latitude >= %lf", myUserLatitude - 1.0)
let latitudeMaxPredicate = NSPredicate(format: "latitude <= %lf", myUserLatitude + 1.0)
let longitudeMinPredicate = NSPredicate(format: "longitude >= %lf", myUserLongitude - 1.0)
let longitudeMaxPredicate = NSPredicate(format: "longitude <= %lf", myUserLongitude + 1.0)
var compoundPredicate = NSCompoundPredicate()
compoundPredicate = NSCompoundPredicate(andPredicateWithSubpredicates: [anotherUnrelatedPredicate,latitudeMinPredicate,latitudeMaxPredicate,longitudeMinPredicate, longitudeMaxPredicate])
fetchRequest.predicate = compoundPredicate
Очевидно, я создамдругое свойство для масштабирования значения 1.0 для желаемой пользователем области.Начальные тесты, кажется, работают, и лучше всего я не могу поверить, насколько быстро это происходит.Буквально tableView заполняется ко времени перехода viewController к включающему mapView.