我已经创建了一个测试项目来跟踪我在使用MKMapView时在Instruments中看到的泄漏。
这是我的MapViewController代码:
import UIKit
import MapKit
class MapViewController: UIViewController {
@IBOutlet var mapView: MKMapView!
deinit {
print(#file, #function)
}
}
当我关闭此VC时,会打印deinit行,但Instruments会记录内存泄漏。 (注意:我正在测试设备,而不是模拟器。)deinit告诉我mapView已正确解除分配,所以我不明白为什么我有内存泄漏,除非它是Apple代码中的泄漏。这是仪器截图。
对于那些好奇的人,跟踪仪器中的泄漏会显示测试项目中的另一个VC,它是空的。下面是截图。
Code leak pointer in Instruments
我的代码有问题,还是苹果代码泄漏? TIA
答案 0 :(得分:3)
这是一个错误,并已向Apple报告。它似乎已在iOS 11中得到纠正。