OSDN Git Service

循環参照の危険性を排除
authormasakih <masakih@users.sourceforge.jp>
Sun, 29 Oct 2017 07:48:35 +0000 (16:48 +0900)
committermasakih <masakih@users.sourceforge.jp>
Sun, 29 Oct 2017 07:48:35 +0000 (16:48 +0900)
KCD/NotificationCenterExtension.swift

index b5bdf07..1e1129d 100644 (file)
@@ -13,10 +13,10 @@ extension NotificationCenter {
     func addObserverOnce(forName name: NSNotification.Name?, object obj: Any?, queue: OperationQueue?, using block: @escaping (Notification) -> Void) {
         
         weak var token: NSObjectProtocol?
-        token = addObserver(forName: name, object: obj, queue: queue) {
+        token = addObserver(forName: name, object: obj, queue: queue) { [weak self] notification in
             
-            token.map(self.removeObserver)
-            block($0)
+            self.map { me in token.map(me.removeObserver) }
+            block(notification)
         }
     }
 }