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

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

一、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 今天就分享到这。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容