Я пытаюсь использовать NSNotification для связи между двумя классами swift. Я не знаю, что я делаю неправильно, но там, где другие уведомления работают нормально, один из них продолжает давать беспорядочную сортировку, отправленную случайному исключению. Случайно я имею в виду, что каждый раз, когда я выполняю это исключение кода, такое же, но ссылка на класс отличается от __CALayer, __NSArray, __NSSet и т. Д., Где я даже не использую эти классы напрямую. Любая помощь?NSNotification Random Как непризнанное исключение
Здесь наблюдатель метод класса инициализации:
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)
}
и один я отправляю уведомление внутри:
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-09-05 19: 49: 45.598 TurkİşManga [12708: 58814] - [__ NSArrayM downloadChapter:]: непризнанный селектор отправлен в экземпляр 0x7fbf9c80dd90 2015-09-05 19: 49: 45,600 TurkİşManga [12708: 58814] *** Согласующее приложение из-за неперехваченное исключением 'NSInvalidArgumentException', причину: «- [__ NSArrayM downloadChapter]: непризнанной селектор послана к экземпляру 0x7fbf9c80dd90 '
и здесь также является проект метода downloadChapter:
func downloadChapter(notification : NSNotification){}
Необходимо отправить сообщение об ошибке, которое вы видите. Также первая строка или две из вашей функции «downloadChapter:». – Walter
Я редактировал его. Можете ли вы проверить? –
В моем тестовом проекте я не могу получить вашу ошибку. Я бы посмотрел содержимое userInfo. Протестируйте, установив это на известные значения: let userInfo = ["downloadList": ["1", "2", "3"], "mangaName": ["a", "b"]], а затем посмотрите, может отслеживать это таким образом. – Walter