Swift派生与不派生自NSObject对象之间等于比较的不同

本文探讨了Swift中,派生和不派生自NSObject的类在进行等于比较时的行为差异,指出派生自NSObject的对象在比较时会使用isEqual()而不是自定义的==方法。此外,文章还讨论了如何高效地创建大数组,强调避免使用append方法并推荐使用赋值方式以提高性能。
摘要由CSDN通过智能技术生成

本文简单介绍了Swift中派生与不派生自NSObject的类,在等于比较时表现出的不同行为;还顺带讨论了创建大数组时效率的问题.

等于或不等于

我们知道对于数组的比较来说,实际比较的是它们中的每一个对应位置上元素.

所以最终都是要比较对象的.

我们还知道对于Swift中的类来说,要实现==操作符,需要遵守Equatable协议,并实现==方法.

比如对于类A来说:

class A:NSObject{
    var name:String
    var id:Int
    
    init(name:String,id:Int){
        self.name = name
        self.id = id
    }
    
    convenience override init() {
        self.init(name: "", id: 0)
    }
}

要实现如下方法:

static func ==(lhs:A,rhs:A)->Bool{
   if lhs.name == rhs.name,lhs.id == rhs.id{
        return true
    }
    return false
}

派生自NSObject的时候

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大熊猫侯佩

赏点钱让我买杯可乐好吗 ;)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值