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

来源:互联网 发布:世界征服者2mac 编辑:程序博客网 时间:2024/06/11 10:50

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

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

0 0
原创粉丝点击