2016-12-10 88 views
0

我有一個接受的加速度計數據,並張貼在通知像這樣一類:設立遵守本通知中心沒有收到帖子

func notify(accel: accelPoint){ 

     NotificationCenter.default.post(name: Notification.Name("newRawData"), object: nil) 
} 

和兩個對象,首先是一個的viewController:

override func viewDidLoad() { 
    super.viewDidLoad() 

    NotificationCenter.default.addObserver(self, selector: #selector(FirstViewController.newRawData), name: Notification.Name("newRawData"), object: nil) 

它調用函數:

func newRawData(notification: NSNotification){ ... 

這一切正常。

另一個觀察者是在一個普通的Swift類中,在應用程序委託中實例化。 (我曾嘗試之前,創造通知課後這樣做):

init(){ 
    NotificationCenter.default.addObserver(self, selector: #selector(FilterManager.newRawData), name: Notification.Name("newRawData"), object: nil) 

} 

哪個應該調用下面的功能,但由於某種原因,它沒有。

@objc func newRawData(){ 
    print("WHYYY") 
} 

這個類是正確的,我所看到的觀察者正在註冊和通知被張貼爲什麼沒有這個類被通知像其他的名字?

此外,爲什麼我必須將第二個類中的newRawData函數暴露給Objective-C,但不是viewController類中的newRawData

回答

0

您是否在AppDelegate中引用了FilterManager類?如果不在你的AppDelegate類中添加此代碼。你也可以使FilterManger單例解決這個問題。

var filterManger = FilterManger() 
+0

使這個類成爲一個單例似乎工作,但我不明白爲什麼?你能解釋一下嗎?似乎與直覺相反,人們只能使用單身通知中心。 – ozliftoff