看了好多文章,告诉了你好多方法,好多函数,好多用法:高级、中极、低级,可是在我看来其实低级的都不懂,别不信往下看。
一、alloc 是基础方法吧,alloc的作用是什么啊?
- 应该会说
alloc
是为对象分配内存空间的,那就看看下面一道题。 - 那先来个
NSArray
的问题吧,问:下面两个对象
的地址一样吗?
NSArray *arra1 = [NSArray alloc] init];
NSArray *arra2 = [NSArray alloc] init];
NSLog(@"%p", arra1);
NSLog(@"%p", arra2);
-
然而:地址是一样的
然而结果是一样的 -
arra1
和arrr2
是同一个对象吗?验证一下吧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 今天就分享到这。
网友评论