• 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()
                    }
                }
            }
        }
    
  • 相关阅读:
    UVa 12174 (滑动窗口) Shuffle
    UVa 1607 (二分) Gates
    CodeForces ZeptoLab Code Rush 2015
    HDU 1525 (博弈) Euclid's Game
    HDU 2147 (博弈) kiki's game
    UVa 11093 Just Finish it up
    UVa 10954 (Huffman 优先队列) Add All
    CodeForces Round #298 Div.2
    UVa 12627 (递归 计数 找规律) Erratic Expansion
    UVa 714 (二分) Copying Books
  • 原文地址:https://www.cnblogs.com/qqcc1388/p/10000097.html
Copyright © 2020-2023  润新知