iOSswift中⽐较模型数组是否相等在oc中,如果要⽐较模型数组中的元素是否相等⼀般重新isEqual⽅法即可
-(BOOL)isEqual:(id)object{
if (self == object) {
return YES;
}
if ([object isKindOfClass:[self class]]) {
HXQHoldWorthModel *obj = (HXQHoldWorthModel *)object;
return self.holdCount == obj.holdCount &&
[self.userImg isEqualToString:obj.userImg]&&
[alname alname]&&
}else{
return NO;
}
}
在swift中已经如果要⽐较两个元素是否相等使⽤==,如果要⽐较两个model是否相等则需要遵守Equatable协议class HXQStockProfitModel: HandyJSON,Equatable {
var userId: Int = 0
var nickname: String = ""
var userImg: String = ""
var profit:Int = 0
var title: String = ""
/// json转模型结束后可以在这⾥做⼀些操作
func didFinishMapping() {
title = "\(nickname)赚了\(profit)积分"
}
/// 遵守Equatable协议,并实现该⽅法可以让model具有 == 功能
static func == (lhs: HXQStockProfitModel, rhs: HXQStockProfitModel) -> Bool {
return lhs.userId == rhs.userId &&
lhs.nickname == rhs.nickname &&
lhs.userImg == rhs.userImg &&
lhs.profit == rhs.profit &&
lhs.title == rhs.title
}
required init() {
}
swift 字符串转数组}
这样在使⽤的时候可以直接==
var profits = [HXQStockProfitModel](){
didSet{
//第⼀次赋值
if oldValue.isEmpty {
updateProfits()
}else{ //更新值
//list中内容与上次是否相同,不相同则更新
if oldValue != profits{
updateProfits()
}
}
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论