Why is this code not recognising the NSString as being equal?

梦想的初衷 提交于 2019-11-27 05:39:26
Adil Soomro

use [string isEqualToString:@"any string"]

See a very useful discussion here: Understanding NSString comparison

For string comparisons, use [name isEqualToString:service.name]

Using == will compare to see if both pointers point to the same object, not if they point to objects with the same contents. Even if both pointers contain the same string, that does not mean they point to the same object.

If two people both have the same car, and so have the same key to unlock it, both keys are not equal and will not open both cars; each will only open the car for which it was made. If one person has a car but has an extra key made, they are equal because they open the same car (object). You can think of the pointers in this way.

You are comparing two objects not two string. Try [string isEqualToString:@"another string"].

In Objective C use [string1 isEqualToString:@"string2"]; for string comparison.

Here is the code :

NSLog(@"name: %@", name);
NSLog(@"service: %@", service.name);
if ([name isEqualToString:service.name])
    NSLog(@"Strings are Equal");
else
    NSLog(@"Strings are Not Equal");   
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!