isEqual
1 NSString *str1 = @"";
NSString *str2 = [NSString stringWithFormat:@"%@", str1];
大家明白, str1和str2在内存中的地址是不一样的.
如果用 isEqual:比较两者, 明显返回值为 NO;
为了我们使用方便, 我在.m实现中, 对isEqual进行了重写, 按照str1 和 str2的值来比较:
/**
* 常用来比较两个对象是否是否一样
*
* @另外一个对象 (内存地址一样才相等)
*/
- (BOOL)isEqual:(PPEmotionModel *)object
{
// if ([self.chs isEqualToString:object.chs] || [self.code isEqualToString:object.code])
// {
// return YES;
// }else{
// return NO;
// }
return [self.chs isEqualToString:object.chs] || [self.code isEqualToString:object.code];
}
注意: 内存的分布!!!
所以在删除数组中重复元素(可以是对象)的时候, 可以直接移除
[Emotions removeObject:emotion];
isEqual的更多相关文章
- iOS判断对象相等 重写isEqual、isEqualToClass、hash
相等的概念是探究哲学和数学的核心,并且对道德.公正和公共政策的问题有着深远的影响. 从一个经验主义者的角度来看,两个物体不能依据一些观测标准中分辨出来,它们就是相等的.在人文方面,平等主义者认为相等意 ...
- ”isEqual“ ”isEqalToString“ 和“==”三者区别
isEqual :首先判断的时对象类型是否 一样,然后再判断具体内容是否一致:如果类型不一样,return no: isEqualToString: 直接判断字符串内容,便捷更快速,但是前提确保比较的 ...
- Objective-c中 isEqual ,isEqualToString , == 三者的区别
首先 OC中的对象都是用指针表示,方法的调用是基于消息机制实现,== 比较的自然是指针指向的地址 然后 说下 isEqual 和 isEqualToString 的区别 IsEqual 是 NSObj ...
- 使用isEqual来比较对象
比较对象 您可以使用 isEqual: 方法比较两个对象.让接收消息的对象与传入的对象进行比较:如果相同,该方法返回 YES.例如: BOOL objectsAreEqual = [obj1 isEq ...
- Swift Explore - 关于 Swift 中的 isEqual 的一点探索
在我们进行 App 开发的时候,经常会用到的一个操作就是判断两个对象是否相等.比如两个字符串是否相等.而所谓的 相等 有着两层含义.一个是值相等,还有一个是引用相等.如果熟悉 Objective-C ...
- isEqual,isEqualTostring,==三者的区别
isEqual:首先判断两个字对象的类型是否相同,在判断内容是否相同,如果类型不同直接return no.如先判断是否都是 NSString,在判断string的内容. isEqualTostring ...
- isequal 和startswith 使用
如果要把不同服务器发送过来的日志保存到不同的文件, 可以这样操作: :fromhost-ip, isequal, "192.168.0.160″ /var/log/host160.log : ...
- NSDictionary实现原理-ios哈希hash和isEqual
NSDictionary实现原理-ios哈希hash和isEqual OC中自定义类的NSCopying实现的注意事项(isEqual & hash实现) http://blog.csdn ...
- 重载hash与isEqual:方法
重载hash与isEqual:方法 前言 NSObject 自带了hash与isEqual:方法,服务于具有hash表结构的数据结构.NSObject自带的hash函数相当于hash表中的f(key) ...
随机推荐
- 读<大数据日知录:架构与算法>有感
前一段时间, 一个老师建议我能够学学 '大数据' 和 '机器学习', 他说这必定是今后的热点, 学会了, 你就是香饽饽.在此之前, 我对大数据, 机器学习并没有非常深的认识, 总觉得它们是那么的缥缈, ...
- 菜单类(CCMenu,CCMenuItem)
- Executing System commands in Java---ref
One of the nice features of Java language is that it provides you the opportunity to execute native ...
- [转] Android进阶——安卓接入微信,获取OpenID
PS: sendAuthRequest拿到code,通过code拿到access_token和openId,access_token可以拿到用户的信息 http://blog.csdn.net/hao ...
- 聊聊Android5.0中的水波纹效果
水波纹效果已经不是什么稀罕的东西了,用过5.0新控件的小伙伴都知道这个效果,可是如果使用一个TextView或者Button或者其它普通控件的话,你是否知道如何给它设置水波纹效果呢?OK,我们今天就来 ...
- Android5.0之NavigationView的使用
导航菜单的制作方式多种多样,网上也有各种炫酷效果的具体实现方式,那么今天我主要是想来说说Google在Android5.0之后推出的NavigationView的具体使用方式. NavigationV ...
- 深入理解计算机系统第二版习题解答CSAPP 2.7
下面的函数将输出什么结果? const char *s = "abcdef"; show_bytes((byte_pointer) s, strlen(s)); 其中字母'a'~' ...
- LSJ_NHibernate第一章 NHibernate介绍
前言: 说起NHibernate网上资料真不少,但用的人却并不多,说起java的SSH框架大家可能就知道了,这里的H指的就是Hibernate,一款好用的ORM框架,在.net重写了这款好用的框架,名 ...
- unity3d最新面试题与参考答案汇总
1.在类的构造函数前加上static会报什么错?为什么? 构造函数格式为 public+类名,如果加上static会报错(静态构造函数不能有访问修饰符)原因:静态构造函数不允许访问修饰符,也不接受任何 ...
- poi 导入/导出 工具类
package com.holy.util; import java.io.File; import java.io.FileOutputStream; import java.io.IOExcept ...