美文网首页
iOS 基础 ?(不,我是来颠覆你基础的)

iOS 基础 ?(不,我是来颠覆你基础的)

作者: 不误正业的开发者 | 来源:发表于2016-05-30 17:55 被阅读34次

看了好多文章,告诉了你好多方法,好多函数,好多用法:高级、中极、低级,可是在我看来其实低级的都不懂,别不信往下看。

一、alloc 是基础方法吧,alloc的作用是什么啊?

  • 应该会说alloc 是为对象分配内存空间的,那就看看下面一道题。
  • 那先来个NSArray的问题吧,问:下面两个对象的地址一样吗?
    NSArray *arra1 = [NSArray alloc] init];
    NSArray *arra2 = [NSArray alloc] init];
    NSLog(@"%p", arra1);
    NSLog(@"%p", arra2);
  • 然而:地址是一样的


    然而结果是一样的
  • arra1arrr2 是同一个对象吗?验证一下吧

      NSArray *array3 = [[NSArray alloc] init];
      NSArray *array4 = [[NSArray alloc] init];
      NSLog(@"%p", array3);
      NSLog(@"%p", array4);
      
      if (array4 == array3) {
          
          NSLog(@"同一对象");
      }
    
  • arr3,arr4 指针平等,不相等


    控制台结果
  • 这是什么原因呢?

  • 答:[[NSArray alloc] init]返回的是一个空的不可变数组,你所创建的不同的空不可变数组,返回的是一个单例。


2016/5/30 今天就分享到这。

相关文章

网友评论

      本文标题:iOS 基础 ?(不,我是来颠覆你基础的)

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