美文网首页
Objective-C 中比较相等的操作

Objective-C 中比较相等的操作

作者: 张科_Zack | 来源:发表于2021-08-16 15:06 被阅读0次

用标准 C 库中的 == 运算符来比较是否两个指针指向内存中的同一个对象。

请参考以下例子:

    NSString *string1 = @"123";
    NSString *string2 = @"123";
    NSMutableString *string3 = [NSMutableString stringWithString:@"123"];
    
    if (string1 == string2) {
        NSLog(@"NSString 相同字符串指向同一块内存区域");
    }
    
    if (string1 == string3 ) {
        
    } else {
        NSLog(@"NSString, NSMutableString 相同字符串指向不同的内存区域");
    }

输出

2021-08-16 14:53:46.525469+0800 Component[44899:2012399] NSString 相同字符串指向同一块内存区域
2021-08-16 14:53:46.525638+0800 Component[44899:2012399] NSString, NSMutableString 相同字符串指向不同的内存区域

使用 NSObject 中的 - (BOOL)isEqual:(id)object;方法来确定不同对象是否呈现相同的值。

例如

    NSString *string1 = @"123";
    NSString *string2 = @"123";
    NSMutableString *string3 = [NSMutableString stringWithString:@"123"];
    
    if ([string1 isEqual:string2] && [string1 isEqual:string3]) {
        NSLog(@"isEqual 用来确定不同对象是否呈现相同的值");
    }

输出

2021-08-16 14:57:34.613874+0800 Component[44981:2016568] isEqual 用来确定不同对象是否呈现相同的值

相关文章

网友评论

      本文标题:Objective-C 中比较相等的操作

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