美文网首页
IOS中, ==和isEqualToString的区别

IOS中, ==和isEqualToString的区别

作者: 昵称丢失了 | 来源:发表于2018-03-21 15:54 被阅读0次

    == 比较的是两个字符串的内存地址,

    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
    

    相关文章

      网友评论

          本文标题:IOS中, ==和isEqualToString的区别

          本文链接:https://www.haomeiwen.com/subject/rrmgqftx.html