objective-c – 理解NSString比较

objective-c – 理解NSString比较,第1张

概述以下两个比较均为真: 1) @"foo" == @"foo"; 2) NSString *myString1 = @"foo";NSString *myString2 = @"foo";myString1 == myString2; 但是,肯定有时候使用等于运算符不能比较两个NSStrings,而是需要[myString1 isEqualToString:myString2]。有人可以说一些光 以下两个比较均为真:

1)

@"foo" == @"foo";

2)

Nsstring *myString1 = @"foo";Nsstring *myString2 = @"foo";myString1 == myString2;

但是,肯定有时候使用等于运算符不能比较两个Nsstrings,而是需要[myString1 isEqualToString:myString2]。有人可以说一些光吗?

解决方法 ==的原因是因为指针比较。当使用@“”定义常量Nsstring时,编译器将唯一化引用。当在代码中的其他地方定义相同的常量时,它们都将指向内存中的相同实际位置。

当比较Nsstring实例时,应该使用isEqualToString:方法:

Nsstring *myString1 = @"foo";Nsstring *myString2 = @"foo";Nsstring *myString3 = [[Nsstring alloc] initWithString:@"foo"];NSLog(@"%d",(myString2 == myString3))  //0NSLog(@"%d",(myString1 == myString2)); //1NSLog(@"%d",[myString1 isEqualToString:myString2]); //1NSLog(@"%d",[myString1 isEqualToString:myString3]); //1[myString3 release];
总结

以上是内存溢出为你收集整理的objective-c – 理解NSString比较全部内容,希望文章能够帮你解决objective-c – 理解NSString比较所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1049064.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存