swift中的===

对于值类型来说,不存在使用===进行比较的情况,采用==进行值的比较即可。

当类型为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,然后再用===进行比较

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、值类型和引用类型2、Array和Dictionary还是NSMutableArray和NSMutableDic...
    盖小聂阅读 597评论 0 0
  • 在实际编程中,很多时候,我们都需要使用比Int,String这类简单类型更复杂的类型,例如,需要两个Double表...
    AKyS佐毅阅读 1,941评论 0 6
  • Swift 中的类型 本文主要介绍Swift中的元类型,其中包含AnyObject、Any、AnyClass、T....
    just东东阅读 1,796评论 3 14
  • 诞生 swift 作为新起步的语言,必然抛不掉一些历史遗留包袱。用过 Objective-C 的同学肯定知道有一种...
    Inlight先森阅读 4,646评论 0 6
  • Swift中的反射非常有限,仅允许以只读方式访问元数据的类型子集。或许 Swift 因有严格的类型检验而不需要反射...
    OneAPM阅读 400评论 0 1