美文网首页
iOS 中的 == 与 isEqual

iOS 中的 == 与 isEqual

作者: __May__ | 来源:发表于2019-03-29 15:43 被阅读0次

    iOS中判断两个对象是否相等
    1.== 比较两个对象的内存地址;
    2.isEqual: 默认情况下是比较两个对象的内存地址;isEqual:就是提供了一个可以自定义相等标准的方法。系统自带的类(比如Foundation中的NSString,NSArray等)重写了这个方法,改变了这个方法的判断规则,一般改为比较两个对象的内容,不是内存地址.

    ShiJueViewController *vc = [[ShiJueViewController alloc]init];
        ShiJueViewController *vc1 = [[ShiJueViewController alloc]init];
        NSArray *a = @[@1];
        NSArray *b = a;
        NSArray *c = @[@1];
        if (a==b) {NSLog(@"a ==b");} //YES
        if (a==c) {NSLog(@"a==c");} //NO
        if ([a isEqual:b]) {NSLog(@"a isEqual: b");} //YES
        if ([a isEqual:c]) {NSLog(@"a isEqual: c");}//YES
        if ([vc isEqual:vc1]) {NSLog(@"vc isEqual: vc1");}//NO
        // == 指针相同      重写“isEqual”方法就是提供自定义的相等标准
    

    相关文章

      网友评论

          本文标题:iOS 中的 == 与 isEqual

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