gpt4 book ai didi

ios - 模拟器(iOS)结果不一致?

转载 作者:行者123 更新时间:2023-11-30 13:28:17 34 4
gpt4 key购买 nike

我正在构建一个基本的地理围栏应用程序,允许用户创建地理围栏、在 MKMapView 上查看它们以及激活和停用它们。它基于 Ray Wenderlich 教程,但我以多种方式对其进行了调整。也就是说,我使用 Realm 来保存数据,并且创建了一个单独的 LocationHandler 类,该类充当 LocationManagerDelegate 并保存 LocationManager。一般来说,我尝试将一些函数从 viewController 移出并移入单独的类中。

一切似乎都正常,除了定期 map 注释和叠加层在模拟器中无法正确呈现之外。大约 20% 的情况下,注释和叠加层在应该删除的情况下却没有被删除。或者,颜色不会发生应有的变化。或者,圆形覆盖层会改变颜色,但关联的引脚不会改变颜色。

这是由于我的代码中存在一些错误,还是使用模拟器造成的?谢谢您的帮助

编辑以添加一些代码:在 View Controller 中

//Clicking the 'x' deletes the geofence
func mapView(mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {

let anAnnotation = view.annotation as! GeofenceAnnotation
let geofence = anAnnotation.geofence

//stop monitoring geofence
locationManager.stopMonitoringGeofence(geofence!)

//remove representation of geofence from map
removeGeofenceRadiusCircle((geofence?.identifier)!)
mapView.removeAnnotation(anAnnotation)


//delete geofence from realm
try! realm.write {
realm.delete(geofence!)
}
updateGeofenceCount()
}
//Go through all overlays and remove appropriate one
func removeGeofenceRadiusCircle(id: String) {
self.mapView.delegate = self
if let overlays = mapView?.overlays {
for ol in overlays {
if let circleOverlay = ol as? GeofenceRadiusCircle {
let aId = circleOverlay.id
if aId == id {
mapView?.removeOverlay(circleOverlay)
break
}
}
}
}
}

MKAnnotation 的子类 类 GeofenceAnnotation: NSObject, MKAnnotation {

    var coordinate: CLLocationCoordinate2D
var title: String?
var subtitle: String?
var geofence: Geofence?

init(coordinate: CLLocationCoordinate2D, title: String, subtitle: String, geofence: Geofence? = nil) {
self.coordinate = coordinate
self.title = title
self.subtitle = subtitle
self.geofence = geofence
}

MKCircle 的子类

class GeofenceRadiusCircle: MKCircle{
var geofence: Geofence?
var color: UIColor?
var id: String = ""
}

最佳答案

这似乎是我这边的一个小错误,也可能是模拟器的错误。在 viewWillAppear 中重新绘制帐户之前,我需要删除旧的覆盖层。这似乎解决了覆盖和注释问题。我还遇到了用户位置未始终显示在 map View 中的问题,而当我在手机上运行该应用程序时,情况似乎并非如此。

关于ios - 模拟器(iOS)结果不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36875801/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com