【问题标题】:MKMapView Crash at initMKMapView 在初始化时崩溃
【发布时间】:2021-03-24 23:41:42
【问题描述】:

GeoServices: -[GEOResourceManager pathForResourceWithName:fallbackBundle:fallbackNameHandler:] + 352

我遇到了上述崩溃。我正在使用 MKMapView() 初始化程序。

    class MapCell: UICollectionViewCell {
    
          private let mapView  = MKMapView()
    
    
      override init(frame: CGRect) {
          super.init(frame:frame)
    
        self.mapView.mapType = .standard
        self.mapView.isScrollEnabled = false
        self.mapView.isZoomEnabled = false
        self.mapView.isPitchEnabled = false
        self.mapView.isRotateEnabled = false
        self.contentView.addSubview(self.mapView)
    
    
      }


      override final func layoutSubviews() {
        super.layoutSubviews()

          self.mapView.frame = CGRect(x: 8, y: 8, width: 240, height: 240)
      }

    }

【问题讨论】:

  • 您能否在上下文中向我们展示崩溃的代码
  • 原帖已更新。
  • 我不知道是不是这里的问题,但你真的不希望每个单元格都有地图视图。这是一个非常“昂贵”的视图对象。你应该使用map snapshots。尝试暂时只返回一个单元格,看看是否有效。如果有,但多个单元格没有,则问题可能是地图视图过多。
  • 这些单元格中只有一个。一张地图。一个 MKMapView。
  • 我建议说MKMapView() 本身可能是错误的。试着给它一个框架,让它的大小像 100x100,看看这是否会产生差异。我可能不在基地,但嘿,试一试不会有什么坏处。

标签: ios swift xcode mapkit mkmapview


【解决方案1】:

我认为崩溃的最可能原因是您的应用程序引用了一个资源,该资源没有作为构建过程的一部分复制到应用程序包中。您能否放置一个调试语句来显示在 GEOResourceManager 中引用的 URL 并检查构建的 IPA 文件中传递的文件(假设它是在 GEOResourceManager 中使用的文件 URL)。

【讨论】:

  • 它不太可能是位码,但它可能是某种特定于目标或设备的资源。添加调试,并提供完整的 .crash 文件,它可能会有所帮助。如果调试告诉您问题资产,请从资产目录右侧窗格中截取其属性的屏幕截图。
猜你喜欢
  • 2016-01-25
  • 1970-01-01
  • 1970-01-01
  • 2017-09-04
  • 1970-01-01
  • 1970-01-01
  • 2016-04-08
  • 2018-03-15
  • 1970-01-01
相关资源
最近更新 更多