zoukankan      html  css  js  c++  java
  • iOS swift中比较模型数组是否相等

    在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()
                    }
                }
            }
        }
    
  • 相关阅读:
    Tree Recovery解题报告
    bjtuOJ1019 Robot
    bjtuOJ1137 蚂蚁爬杆
    栈的使用,rails
    重做catch the cow
    C#3.0新特性之匿名类型
    C#Lambda表达式的用法
    C#进程的使用方法详解
    C#进程管理启动和停止
    C#LINQ查询表达式用法
  • 原文地址:https://www.cnblogs.com/qqcc1388/p/10000097.html
Copyright © 2011-2022 走看看