Objective-C 中如何正确的比较字符串的值

作者: harde 分类: Android & Iphone 发布时间: 2011-11-24 17:06

一个纯.NET程序员出来看其他语言是很悲剧的~
尤其是像Objectie-C这种类C语言~~

最近做个小东西,第一屏是登录视图,需要与服务器通讯,为了测试方便
就随手写了句

if (txtCO_NO.text  == @"1" && txtUSER_CD.text == "1" && txtPASSWD.text = "1") 
    {
        //跳过服务器验证
    }

然后悲剧得发现,每次都没有进去…..
断点监视,发现值还都没问题,于是翻了翻手册,发现个问题
双等号==运算符只能判断两个NSString的指针数值,而不是他们所指的对象。
txtCO_NO.text得到的1与后面的@”1″,内存指向不同,所以不相等,也就不能进入if语句中了~
这一点和.NET有很大的差异。
虽然.NET中的String是引用类型(有值类型特点的特殊引用类型),但是运算时仍然可以当成值类型来处理。
正确的写法是使用isEqualToString:(NSString *)

if ([txtCO_NO.text isEqualToString:@"1"] && [txtUSER_CD.text isEqualToString:@"1"] && [txtPASSWD.text isEqualToString:@"1"] ) 
    {
        //跳过服务器验证
    }

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注