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()
}
}
}
}
iOS swift中比较模型数组是否相等的更多相关文章
- iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)
// // ViewController.swift // Swift-Array // // Created by luorende on 16/9/12. // Copyright © 2016年 ...
- Swift中实现Array数组和NSArray数组的相互转换与遍历
Array是Swift中的数组数据类型.而NSArray是OC中的数组数据类型.两者有差别有联系.在Swift中有时候难免会使用到OC中的一些东西.今天我们就来Swift中使用NSArray和Arra ...
- 【iOS】在Swift中使用JSONModel
前言 首先所有的Model还是使用oc来写——看到这一句是不是想关网页了- - #,在swift里面直接写一直报错所以就将就用oc来写了,这里主要是分享一下搭配Alamofire使用的经验. 声明 欢 ...
- 如何在 iOS 8 中使用 Swift 实现本地通知(上)
当你的应用在后台运行时,可以简单地使用本地通知把信息呈现给用户.它可以允许你显示 提醒.播放提示音和数字角标(badge).本地通知可以被以下的事件触发:计划好的时间点或者用户进入和离开某个地理区域. ...
- iOS swift HandyJSON组合Alamofire发起网络请求并转换成模型
在swift开发中,发起网络请求大部分开发者应该都是使用Alamofire发起的网络请求,至于请求完成后JSON解析这一块有很多解决方案,我们今天这里使用HandyJSON来解析请求返回的数据并转化成 ...
- ios开发中的Swift面向对象
iOS在现代计算机语言中,面向对象是非常重要的特性,Swift语言也提供了面向对象的支持.而且在Swift语言中,不仅类具有面向对象特性,结构体和枚举也都具有面向对象特性. 1.Swift中的类和结构 ...
- Swift中对C语言接口缓存的使用以及数组、字符串转为指针类型的方法
由于Swift编程语言属于上层编程语言,而Swift中由于为了低层的高性能计算接口,所以往往需要C语言中的指针类型,由此,在Swift编程语言刚诞生的时候就有了UnsafePointer与Unsafe ...
- Swift中的数组
学习来自<极客学院:Swift中的字符串和集合> 工具:Xcode6.4 直接上基础的示例代码,多敲多体会就会有收获:百看不如一敲,一敲就会 import Foundation //数组: ...
- IOS学习[Swift中跳转与传值]
Swift中页面跳转与传值: 1.简单方式 首先,Swift的跳转可分为利用xib文件跳转与storyboard跳转两种方法,我这里选择使用storyboard的界面跳转方法. 1.通过在storyb ...
随机推荐
- 通过Roslyn动态生成程序集
之前写过篇文章如何通过Roslyn构建自己的C#脚本,今天本来打算测试一下这部分API在新的版本中的变化,结果发现它的脚本引擎找不到了,翻了一下官方文档,貌似说暂时性的移除了.便看了一下它动态生成程序 ...
- SQL:将查询结果插入到另一个表的三种情况!
一:如果要插入目标表不存在: select * into 目标表 from 表 where ... 二:如果要插入目标表已经存在: insert into 目的表 select * from 表 wh ...
- 让IE浏览器支持HTML5
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- android_我的第一个Android程序
今天开始学Android开发,搞了一下午就完成了两个小功能,大部分时间都在调试.熟悉环境, Android开发环境对比VS无论是安装.使用.更新都不够方便,不过慢慢适应就好 完成功能如下: 功能一 ...
- npm的简单应用
1.安装node 2.旧版node升级 (1)linux系统 sudo npm install npm -g (2)window系统 npm install npm -g 3.安装淘宝镜像cnpm(以 ...
- RUEI 13.1.1版本在OEL 5.7上的安装
准备工作 ntp的工作和同步 /sbin/chkconfig --list | grep ntpd ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off /sb ...
- adb logcat通过包名过滤(dos命令find后跟变量)
adb命令中似乎没有直接通过报名来过滤的功能,可是能够通过过滤进程的pid来过滤该应用的日志 过滤条件:该app在执行 实现原理: 1.获取该app执行时的pid 2.通过find命令,过滤pid的日 ...
- DL380 G6 BIOS刷新方法
bios下载地址SP44873.exe (5.9 MB) http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.js ...
- 【译】你对position的了解有多少?
此文根据Steven Bradley的<How Well Do You Understand CSS Positioning?>所译,整个译文带有我自己的理解与思想,如果译得不好或不对之处 ...
- POJ 2386 Lake Counting 搜索题解
简单的深度搜索就能够了,看见有人说什么使用并查集,那简直是大算法小用了. 由于能够深搜而不用回溯.故此效率就是O(N*M)了. 技巧就是添加一个标志P,每次搜索到池塘,即有W字母,那么就觉得搜索到一个 ...