OSDN Git Service

一度だけNotificationを受ける関数を作成
authormasakih <masakih@users.sourceforge.jp>
Sun, 29 Oct 2017 07:07:59 +0000 (16:07 +0900)
committermasakih <masakih@users.sourceforge.jp>
Sun, 29 Oct 2017 07:07:59 +0000 (16:07 +0900)
KCD.xcodeproj/project.pbxproj
KCD/NotificationCenterExtension.swift [new file with mode: 0644]

index 351910e..81f622a 100644 (file)
                F494DC6A18C8BAB900AE97E4 /* PowerUpSupportViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F494DC6818C8BAB900AE97E4 /* PowerUpSupportViewController.xib */; };
                F495462E1B1894DD00E0D8D0 /* Bookmark.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = F495462C1B1894DD00E0D8D0 /* Bookmark.xcdatamodeld */; };
                F49688671B3EA16800D3CEDE /* RemoveDatabaseFileAndRestart.app in Resources */ = {isa = PBXBuildFile; fileRef = F49688661B3EA16800D3CEDE /* RemoveDatabaseFileAndRestart.app */; };
+               F49748CA1FA5A90F00ECF138 /* NotificationCenterExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F49748C91FA5A90F00ECF138 /* NotificationCenterExtension.swift */; };
                F49AABE61DFC48F300E0B24F /* MainTouchBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = F49AABE51DFC48F300E0B24F /* MainTouchBar.xib */; };
                F49AABE81DFD33FB00E0B24F /* HistoryWindowTouchBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = F49AABE71DFD33FB00E0B24F /* HistoryWindowTouchBar.xib */; };
                F49AABF21DFD53A300E0B24F /* SlotItemWindowTouchBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = F49AABF11DFD53A300E0B24F /* SlotItemWindowTouchBar.xib */; };
                F494DC5918C23E4400AE97E4 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = "<group>"; };
                F495462D1B1894DD00E0D8D0 /* Bookmark.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Bookmark.xcdatamodel; sourceTree = "<group>"; };
                F49688661B3EA16800D3CEDE /* RemoveDatabaseFileAndRestart.app */ = {isa = PBXFileReference; lastKnownFileType = wrapper.application; path = RemoveDatabaseFileAndRestart.app; sourceTree = "<group>"; };
+               F49748C91FA5A90F00ECF138 /* NotificationCenterExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationCenterExtension.swift; sourceTree = "<group>"; };
                F497F6231D5B7CCA00A8F609 /* zh-Hant-TW */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant-TW"; path = "zh-Hant-TW.lproj/MainMenu.strings"; sourceTree = "<group>"; };
                F497F63A1D5B7CE300A8F609 /* zh-Hant-TW */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; name = "zh-Hant-TW"; path = "zh-Hant-TW.lproj/Makefile"; sourceTree = "<group>"; };
                F497F63B1D5B7CE400A8F609 /* zh-Hant-TW */ = {isa = PBXFileReference; lastKnownFileType = text; name = "zh-Hant-TW"; path = "zh-Hant-TW.lproj/Localizable.strings.sed"; sourceTree = "<group>"; };
                                F4AF56851F7F6EF8004F4F4E /* NSNibExtension.swift */,
                                F4AF56841F7F6EF8004F4F4E /* NSUserInterfaceItemIdentifierExtension.swift */,
                                F4CC5C081F88DBD50006B3FA /* NSPredicateExtension.swift */,
+                               F49748C91FA5A90F00ECF138 /* NotificationCenterExtension.swift */,
                        );
                        name = Mics;
                        sourceTree = "<group>";
                                F44BC7371E2A4258004644E3 /* SetPlaneCommand.swift in Sources */,
                                F4BDEEB41E74017800D689AE /* MasterFurniture.swift in Sources */,
                                F42CFE281E3D9A02000B4F9B /* MasterMapInfo.swift in Sources */,
+                               F49748CA1FA5A90F00ECF138 /* NotificationCenterExtension.swift in Sources */,
                                F4AA594C1E1E497C001667AF /* EquipmentWindowController.swift in Sources */,
                                F4BDEEB61E74025700D689AE /* MasterUseItem.swift in Sources */,
                                F4CF25B41E34A38F00C02A66 /* ResourceHistoryManager.swift in Sources */,
diff --git a/KCD/NotificationCenterExtension.swift b/KCD/NotificationCenterExtension.swift
new file mode 100644 (file)
index 0000000..b5bdf07
--- /dev/null
@@ -0,0 +1,22 @@
+//
+//  NotificationCenterExtension.swift
+//  KCD
+//
+//  Created by Hori,Masaki on 2017/10/29.
+//  Copyright © 2017年 Hori,Masaki. All rights reserved.
+//
+
+import Foundation
+
+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.map(self.removeObserver)
+            block($0)
+        }
+    }
+}