iOS 浅析 isEqualToString和==之间的区别
来源:互联网 发布:windows数字签名 编辑:程序博客网 时间:2024/06/13 12:30
相信我们在项目中都会时不时用到“isEqualToString”和“==”那么这两者之间到底有什么区别呢,我们何时用“isEqualToString”何时用"=="呢?
比较两个字符串是否相等时,应该用isEqualToString,不能仅仅用"==",
NSString *str12= [[NSString alloc]initWithCString:"123" encoding:NSUTF8StringEncoding];
NSString *str23 = @"123";
if ([str12 isEqualToString:str23]) {
NSLog(@"They are the same");
NSLog(@"%p",str12);
NSLog(@"%p",str23);
}
if (str12 == str23) {
NSLog(@"They are the same object!");
}
打印结果:
2016-01-14 11:10:32.212 123[877:264424] They are the same
2016-01-14 11:10:38.975 123[877:264424] 0xa000000003332313
2016-01-14 11:10:38.976 123[877:264424] 0x10ba15300
很明显善变两者是不同的,这是因为==运算符只判断是str1和str2的指针数值,而不是它们所指的对象,由于str1和str2是不同的字符串,所以第二种比较方式会认为它们是相同的,有时,我们向检察两个对象的标识:sstr1和str2是同一个对象吗?这个时候会用到“==”如果想查看等价性(即两个字符串是不是代表同一个字符串,这时该用“isEqualToString”).两个字符串对象是想等的,所以会走第一个,但是两个指针是不一样的,第二个是不会走的。
- iOS 浅析 isEqualToString和==之间的区别
- iOS isEqualToString和== 区别
- Object中 isequal,isEqualToString,!=的区别
- ==和isEqualToString
- Objective-C中NSString的isEqual、isEqualToString、== 区别
- Objective-C中NSString的isEqual、isEqualToString、== 区别
- isEqual,isEqualToString,== 三者的区别
- iOS中的相等== isEqual isEqualToString
- Objective-c中 isEqual ,isEqualToString , == 三者的区别
- Objective-C语法之isEqual ,isEqualToString , == 三者的区别
- ctive-c中 isEqual ,isEqualToString , == 三者的区别
- Objective-c中 isEqual ,isEqualToString , == 三者的区别
- Objective-C基础】 isEqual ,isEqualToString , == 三者的区别
- iOS开发:==、isEqual与isEqualToString判断是否相等
- 浅析WEB服务器和应用服务器之间的区别
- 浅析PHP abstract和interface之间的区别
- 浅析NSSet与NSArray之间的区别
- 浅析java中 == 和equals的区别
- 【SQL 编程你也行】SQL Server 2014新功能之动态视图:sys.dm_exec_query_profiles
- 每日一算法3--JAVA时间格式化处理
- 从反编译微信看到的资源文件保护
- HSMWorks 2016(SolidWorks2016插件)下载 vR1.40294汉化中文版
- 运算符的应用
- iOS 浅析 isEqualToString和==之间的区别
- web.xml配置详解
- SSH——Hibernate初学者之旅(一)
- oracle rac 的优点和缺点
- 百度Android工程师面试题
- Android sdk配置 常见问题及处理方法——馨新欣心
- NSString什么时候用copy,什么时候用strong
- svn cannot be opened because the project file cannot be parsed.
- Android Lolipop 屏蔽隐式Intent检查引发的错误