对于值类型来说,不存在使用===进行比较的情况,采用==进行值的比较即可。
当类型为class时,需要比较两个对象是否是针对同一个对象的引用,则需要用到===这种identity operator.
例:
@objc func changed(_ n:Notification) {
let player = MPMusicPlayerController.applicationMusicPlayer
if n.object as AnyObject === player {
// ...
}
}
注意:由于notification的object属性是被声明为Any的(其实是一个Optional wrapping Any),我们必须将它转为AnyObject,然后再用===进行比较