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()
                    }
                }
            }
        }
    
  • 相关阅读:
    striding layers 是什么意思?
    faster rcnn算法及源码及论文解析相关博客
    地铁客流中样本问题
    numpy
    Softmax 函数的特点和作用是什么?
    Faster RCNN代码理解(Python)
    卷积神经网络(CNN)学习笔记1:基础入门
    semantic segmentation 和instance segmentation
    基于深度学习的目标检测
    全卷积网络 FCN 详解
  • 原文地址:https://www.cnblogs.com/qqcc1388/p/10000097.html
Copyright © 2011-2022 走看看