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()
                    }
                }
            }
        }
    
  • 相关阅读:
    OpenCascade Ray Tracing Rendering
    Create New Commands in Tcl
    OpenCascade Modeling Algorithms Fillets and Chamfers
    OpenCascade Modeling Algorithms Boolean Operations
    Construction of Primitives in Open Cascade
    Open Cascade Data Exchange STL
    Tcl Tk Introduction
    Open Cascade DataExchange IGES
    Netgen mesh library : nglib
    Hello Netgen
  • 原文地址:https://www.cnblogs.com/qqcc1388/p/10000097.html
Copyright © 2011-2022 走看看