• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iOSswift中比较模型数组是否相等

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在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]&&
        [self.realname isEqualToString:obj.realname]&&
        self.totalValue == obj.totalValue;
    }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() {
        
    }
}

这样在使用的时候可以直接==

    var profits = [HXQStockProfitModel](){
        didSet{
            //第一次赋值
            if oldValue.isEmpty {
                updateProfits()
            }else{  //更新值
                //list中内容与上次是否相同,不相同则更新
                if oldValue != profits{
                    updateProfits()
                }
            }
        }
    }

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift 获得手机IP(运营商IP和WiFi的IP)发布时间:2022-07-13
下一篇:
swift函数参数——实参与形参发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap