2
블록을 사용하여 통지를 제거하는 방법을 이해하지 못합니다.NotificationCenter에 대한 observer 제거 - "자체 초기 값 내에서 사용되는 변수"
var block = NotificationCenter.default.addObserver(forName: .notifName, object: obj, queue: OperationQueue.current, using: { notification in
NotificationCenter.default.removeObserver(block)
// Do stuff
})
이 경우 컴파일러 오류 "자체 초기 값 내에서 사용되는 변수"가 표시됩니다. 이 옵저버를 제거하려면 어떻게해야합니까? 이 폐쇄 는 관찰자가 작성되어 변수에 할당 된 경우에만 후에 실행되는 것을 "알고"하지 않기 때문에
우수함! 사과 설명서는 Objective-C에서 작동하는 예를 보여 주며, Swift에서 작업하기에는 조금 까다 롭습니다. – grez