看了好多文章蟀拷,告訴了你好多方法碰纬,好多函數(shù),好多用法:高級问芬、中極悦析、低級,可是在我看來其實低級的都不懂愈诚,別不信往下看她按。
一、alloc 是基礎(chǔ)方法吧炕柔,alloc的作用是什么白锰?
- 應(yīng)該會說
alloc
是為對象分配內(nèi)存空間的匕累,那就看看下面一道題陵刹。 - 那先來個
NSArray
的問題吧,問:下面兩個對象
的地址一樣嗎欢嘿?
NSArray *arra1 = [NSArray alloc] init];
NSArray *arra2 = [NSArray alloc] init];
NSLog(@"%p", arra1);
NSLog(@"%p", arra2);
-
然而:地址是一樣的
然而結(jié)果是一樣的 -
arra1
和arrr2
是同一個對象嗎衰琐?驗證一下吧NSArray *array3 = [[NSArray alloc] init]; NSArray *array4 = [[NSArray alloc] init]; NSLog(@"%p", array3); NSLog(@"%p", array4); if (array4 == array3) { NSLog(@"同一對象"); }
-
arr3,arr4 指針平等炼蹦,不相等
控制臺結(jié)果 這是什么原因呢羡宙?
答:
[[NSArray alloc] init]
返回的是一個空的不可變數(shù)組,你所創(chuàng)建的不同的空不可變數(shù)組掐隐,返回的是一個單例狗热。
2016/5/30 今天就分享到這。