У меня есть объект swift, экземпляр которого создан, и класс Objective C, который не использует ARC.Он создается из init и в методе dealloc освобождает его (он хранится в @property, поэтому я отправляю release в его резервную переменную).Однако на графике памяти я вижу, что всякий раз, когда я создаю экземпляр этого объекта (он используется всякий раз, когда пользователи получают доступ к экрану в приложении), он никогда не освобождается.Это просто выглядит как одинокий объект в графе памяти.Я видел, что внутри него это создает цикл удержания в закрытии, но я сделал его слабым, но проблема сохраняется.Любые предложения о том, как продолжить отладку этой проблемы?
Единственный кулприт, о котором я мог подумать, это закрытие, но теперь оно использует слабое «я», но утечка сохраняется:
var observerToken : NSObjectProtocol?;
@objc public override init() {
self.accessToken = ""
super.init()
RPScreenRecorder.shared().delegate = self
if #available(iOS 12.0, *) {
self.observerToken = NotificationCenter.default.addObserver(forName: UIScreen.capturedDidChangeNotification, object: UIScreen.main, queue: OperationQueue.main) { [weak self] (notification) in
guard let strongSelf = self else { return }
if strongSelf.broadcastPickerView != nil && strongSelf.screenTrack == nil {
let isCaptured = UIScreen.main.isCaptured
strongSelf.updateScreenSharingIcon(screenIsShared: isCaptured)
}
}
}
}