美文网首页
iOS内存管理语法考察

iOS内存管理语法考察

作者: 爱吃萝卜的小蘑菇 | 来源:发表于2019-01-21 09:47 被阅读5次

请问下面的代码打印结果是什么?

    NSString *firstString = @"helloworld";
    NSString *secondString = @"helloworld";
    
    if (firstString == secondString) {
        NSLog(@"Equal");
    }else{
        NSLog(@"Not Equal");
    }

答案是打印Equal

  • ==这个符号判断的不是这两个值是否相等,而是这两个指针是否指向同一个对象。如果要判断两个NSString的值是否相同,那么应该用isEqualToString这个方法。

  • 上面的代码中,两个指针指向不同的对象,尽管它们的值相同。但是iOS的编译器优化了内存分配,当两个指针指向两个值一样的NSString时,两者指向同一个内存地址。所以代码会进入if语句的判断,打印出Equal字样。

相关文章

网友评论

      本文标题:iOS内存管理语法考察

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