MKMapView 在 iOS10 中检测内存泄漏

Posted

技术标签:

【中文标题】MKMapView 在 iOS10 中检测内存泄漏【英文标题】:MKMapView Instruments Memory Leak in iOS10 【发布时间】:2017-08-22 19:32:26 【问题描述】:

我创建了一个测试项目来追踪我在使用 MKMapView 时在 Instruments 中看到的泄漏。

这是我的 MapViewController 代码:

import UIKit
import MapKit

class MapViewController: UIViewController 

    @IBOutlet var mapView: MKMapView!

    deinit 
        print(#file, #function)
    


当我关闭这个 VC 时,会打印 deinit 行,但 Instruments 会记录内存泄漏。 (注意:我正在设备上进行测试,而不是模拟器。) deinit 告诉我 mapView 已正确释放,所以我不明白为什么我有内存泄漏,除非它是 Apple 代码中的泄漏。这是 Instruments 的屏幕截图。

Instruments Screenshot

对于那些好奇的人,在 Instruments 中跟踪泄漏会显示测试项目中的另一个 VC,它是空的。下面是它的截图。

Code leak pointer in Instruments

我的代码有问题,还是 Apple 代码泄露? TIA

【问题讨论】:

ios11好像还有这个问题。 【参考方案1】:

这是一个错误,已向 Apple 报告。它似乎已在 iOS 11 中得到纠正。

【讨论】:

以上是关于MKMapView 在 iOS10 中检测内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章

iOS 内存泄漏的检测方式

iOS 内存泄漏检测 Instruments Leaks

iOS 内存泄漏检测 Instruments Leaks

iOS 内存泄漏检测 Instruments Leaks

iOS内存泄漏检测方法

(转载)IOS- Instruments使用之使用Leaks检测内存泄漏