【发布时间】:2016-12-14 16:27:43
【问题描述】:
我想访问通过以下方法发送的 Notification 对象。
var currentTrack:MPMediaItem? {
get{
return playlist?.items[index]
}
set{
print(newValue?.title!)
//self.index = locateIndex(track: newValue!)
let notif = Notification.init(name: Playlist.SongChangedName, object:self)
NotificationCenter.default.post(notif)
}
}
通知名称定义为:
static let SongChangedName = Notification.Name("SongChangedNotification")
这里是观察者:
override init() {
super.init()
NotificationCenter.default.addObserver(self,
selector: #selector(testSelector),
name: Playlist.SongChangedName, //Notification.Name("songChanged"),
object: nil)
}
这是它调用的方法:
func testSelector(notification:Notification){
queueNextTrack()
}
如何通过 testSelector 通知对象?我知道这与 addObserver 方法的对象参数有关。
谢谢。
【问题讨论】:
-
通知中会传递给
notification.object中的选择器 -
对。我如何将该通知传递给选择器? addObserver 方法中通知的引用在哪里?
-
它已经被传入你的选择器,你不需要对
addObserver方法做任何其他事情 -
丹,你似乎是对的。我想我需要了解一些关于“选择器”的东西。不同的是 testSelector(notification:Notification) 无需我直接传递通知即可工作。
标签: ios swift observer-pattern