Я борюсь со следующей ситуацией:
У меня огромное количество маркеров из моей локальной базы данных областей, и я хочу добавить их 1 на 1 на карте, чтобы их было намного большеудобный.
Но, к сожалению, когда я пытаюсь это сделать, я получаю много ошибок из-за неправильного использования потока.
Вот мой код:
guard let selectedSubCategories = PrivateRealmDatabaseManager.shared.getSelectedSubCategories() else {
return
}
guard let selectedMarkers = PrivateRealmDatabaseManager.shared.getMarkerModels(fromSubcategories: selectedSubCategories) else {
return
}
let savedPostsIds = PrivateRealmDatabaseManager.shared.getPostModels()?.compactMap ({ $0.id.value })
markers = selectedMarkers
markers.forEach { [weak self] markerModel in
guard let latitude = markerModel.locationModel?.latitude.value,
let longitude = markerModel.locationModel?.longitude.value,
let title = markerModel.postTitle,
let categoryTitle = markerModel.categoryTitle,
let subcategoryTitle = markerModel.subcategoryTitle,
let postId = markerModel.postId.value else {
return
}
let annotation = VivreAAnnotation(coordinate: CLLocationCoordinate2D(latitude: latitude, longitude: longitude),
title: title,
subtitle: String(format: "%@ - %@", categoryTitle, subcategoryTitle))
annotation.reuseIdentifier = title
guard let image = Request.shared.getImage(with: markerModel.iconURLString),
let resizedImage = image.resizeImage(width: 35) else {
return
}
annotation.image = resizedImage
self?.mapView.addAnnotation(annotation)
}
массив с маркерами называется markers
.Я получаю:
Область, доступ к которой получен из неверного потока