美文网首页
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