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:在仅检查相等时是过度使用。