== 比较的是两个字符串的内存地址,
isEqualToString比较的是两个字符串的值。代码如下:
NSString *str1 = @"aaa";
NSString *str2 = [NSString stringWithFormat:@"%@",@"aaa"];
NSLog(@"[str1 isEqualToString:str2]:::%i", [str1 isEqualToString:str2]);
NSLog(@"str1 == str2:::%i", str1 == str2);
打印log
[str1 isEqualToString:str2]:::1
str1 == str2:::0
关于不同方式创建字符串的地址
NSString *str = @"aaa";
NSString *str1 = @"aaa";
NSString *str2 = [NSString stringWithFormat:@"%@",@"aaa"];
NSString *str3 = [NSString stringWithFormat:@"%@",@"aaa"];
NSString *str4 = [[NSString alloc] initWithFormat:@"%@",@"aaa"];
NSString *str5 = [[NSString alloc] initWithFormat:@"%@",@"aaa"];
NSLog(@"str: %p",str);
NSLog(@"str1: %p",str1);
NSLog(@"str2: %p",str);
NSLog(@"str3: %p",str1);
NSLog(@"str4: %p",str);
NSLog(@"str5: %p",str1);
打印log:
str: 0x104400068
str1: 0x104400068
str2: 0xa000000006161613
str3: 0xa000000006161613
str4: 0xa000000006161613
str5: 0xa000000006161613
网友评论