我想使用NSNotification在兩個Swift類之間進行通信。我不知道我在做什麼錯誤,但其他通知工作正常,其中一個繼續給無法識別的選擇器隨機發送到實例異常。通過隨機我的意思是說,每次我執行代碼異常是相同的,但類引用是不同的像__CALayer,__NSArray,__NSSet等,我甚至不直接使用這些類。任何幫助?NSNotification Random像無法識別的異常
這裏是觀察者類init方法:
override init() {
super.init()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "downloadChapter:", name: "downloadListNotification", object: DisplayMangaViewController.self)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "downloadChapter:", name: "downloadListNotification", object: DownloadRequestListViewController.self)
}
和一個I發佈通知內:
let userInfo = ["downloadList" : self.selectedChapters , "mangaName" : self.obtainedMangaName]
let notification = NSNotification(name: "downloadListNotification", object: DownloadRequestListViewController.self, userInfo: userInfo as [NSObject : AnyObject])
NSNotificationCenter.defaultCenter().postNotification(notification)
這裏是一個例子例外:
2015年9月5日19:49:45.598TurkİşManga[12708:58814] - [__ NSArrayM downloadChapter:]:無法識別的選擇器發送到實例 0x7fbf9c80dd90 2015年9月5日19:49:45.600TurkİşManga[12708:58814] *** 終止應用程序由於未捕獲的異常 'NSInvalidArgumentException' 的,原因是:「 - [__ NSArrayM downloadChapter:]: 無法識別的選擇發送到實例0x7fbf9c80dd90 「
和這裏是downloadChapter法草案:
func downloadChapter(notification : NSNotification){}
你需要發佈你看到的錯誤,請。也是你的第一或第二行「downloadChapter:」func。 – Walter
我已經編輯好了請問您可以檢查一下嗎? –
在我的測試項目中,我無法得到你的錯誤。我會看看userInfo的內容。通過將其設置爲已知值進行測試:let userInfo = [「downloadList」:[「1」,「2」,「3」],「mangaName」:[「a」,「b」]]然後看看你是否可以用這種方式追蹤它。 – Walter