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”).两个字符串对象是想等的,所以会走第一个,但是两个指针是不一样的,第二个是不会走的。


1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 道路上有锯齿线标志怎么办 被领导臭骂了一顿怎么办 酒驾撞了人逃跑怎么办处理 荣耀9home键掉了怎么办 今天开车把老太婆撞了怎么办 交通责任认定书不合理怎么办 交通事故救济金用了 没钱还怎么办 车脏了洗不干净怎么办 衣服上贴花掉了怎么办 衣服上的画掉了怎么办 衣服上沾了胶怎么办 补鞋胶弄衣服上怎么办 摩托车大灯里面掉漆怎么办 行驶中轮胎爆胎怎么办 左拐车道直行了怎么办 踏板摩托车淋雨打不着火怎么办 购房小蓝本丢了怎么办 3d下载模型没颜色怎么办 车辆被扣30分怎么办 驾驶证被扣15分怎么办 驾驶本被扣分了怎么办 违章扣分扣错了怎么办 出国自驾游怎么办手续 新加坡开车工作遇到坏人怎么办 身份证户口本都丢了怎么办 户口本和身份证都丢了怎么办 网上预约挂完号没收到短信怎么办 驾驶证过了换证期限怎么办 身体弱末梢神经循环不好怎么办 自来水钙镁离子超标怎么办 呼吸感觉有煤烟味是怎么办 酒精弄到衣服上怎么办 孕妇吃了糟卤怎么办 气泡机打不了气怎么办 膝盖好冷好凉怎么办吃什么好 卸妆水进眼睛了怎么办 外出没带卸妆水怎么办? 种睫毛卸睫膏弄眼睛里面了 怎么办 化了妆没卸妆水怎么办 痘痘变成了黑痣怎么办 痘痘形成的痣怎么办