Objective c 为什么NSString和JSON返回的字符串虽然都包含相同的值但不相等

Objective c 为什么NSString和JSON返回的字符串虽然都包含相同的值但不相等,objective-c,xcode,json,encoding,nsstring,Objective C,Xcode,Json,Encoding,Nsstring,当我给银行赋值时:banca.name=@“CheBanca!”以下条件返回true if(banca.name==@"CheBanca!"){ header.bankNameLabel.textColor=[UIColor greenColor]; } 但是当我指定与以下相同的值时:banca.name=[jsonBanca objectForKey:@“nome_banca”]条件返回false,尽管NSLog(@“银行名称:%@,[jsonBanca objectForK

当我给银行赋值时:
banca.name=@“CheBanca!”以下条件返回true

if(banca.name==@"CheBanca!"){
        header.bankNameLabel.textColor=[UIColor greenColor];
}
但是当我指定与以下相同的值时:
banca.name=[jsonBanca objectForKey:@“nome_banca”]条件返回false,尽管
NSLog(@“银行名称:%@,[jsonBanca objectForKey:@“nome_banca]”)输出值
银行名称:CheBanca

以下代码显示了如何获取jsonBanca:

NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
[responseData release];

NSDictionary *results = [responseString JSONValue];
[responseString release]; 

NSArray *jsonBanche = [results objectForKey:@"banche"];
NSLog(@"%@",jsonBanche);
NSMutableArray  *banks = [NSMutableArray arrayWithCapacity:jsonBanche.count];

for (int i=0; i<jsonBanche.count; ++i) {

        NSDictionary *jsonBanca = [jsonBanche objectAtIndex:i];
}

问题是为什么这两个字符串@“CheBanca!”和JSON接收的字符串不相等,尽管它们包含相同的短语。以及如何使它们在条件中等于返回true。

这里的问题是
NSString*
是指向
NSString
的指针,因为它们是通过不同的方式加载的,它们是两个不同的
NSString
并且有两个不同的地址。==比较地址,以便将它们视为不同的


要比较字符串的值,请使用
NSString
或的方法和相关方法。这里的问题是
NSString*
是指向
NSString
的指针,因为它们是通过不同的方式加载的,它们是两个不同的
NSString
并且有两个不同的地址比较地址,以便将它们视为不同的


要比较字符串的值,请使用
NSString
的方法和相关方法,或者使用
isEqualToString
方法准确比较字符串

if ([banca.name isEqualToString:@"CheBanca!"]) {
   // strings match
   header.bankNameLabel.textColor=[UIColor greenColor];
}

要准确比较字符串,应使用
isEqualToString
方法

if ([banca.name isEqualToString:@"CheBanca!"]) {
   // strings match
   header.bankNameLabel.textColor=[UIColor greenColor];
}

要检查两个字符串之间是否相等,请使用
isEqualToString:

if ([banca.name isEqualToString:@"CheBanca!"]){
    header.bankNameLabel.textColor = [UIColor greenColor];
}
您以前的代码(
if(banca.name=@“CheBanca!”){
)仅检查指针地址是否相等


获取有关
NSString
类的更多详细信息。

要检查两个字符串之间是否相等,请使用
isEqualToString:

if ([banca.name isEqualToString:@"CheBanca!"]){
    header.bankNameLabel.textColor = [UIColor greenColor];
}
您以前的代码(
if(banca.name=@“CheBanca!”){
)仅检查指针地址是否相等


获取有关
NSString
类的更多详细信息。

可能重复的可能重复使用compare:在仅检查相等时是过度使用。compare:在仅检查相等时是过度使用。