iOS創建對象的兩種方式
UIView *myView = [[UIView alloc] init];
UIView *myView = [UIView new];
alloc init / new |
---|
第一種方式(alloc init)來創建對象時,系統首先會給變量分配內存,然后調用init方法來進行初始化,或者調用initWith方法來初始化。 |
第二種方式(new)是第一種方式中兩步的綜合,系統會直接開辟好內存,調用init方法來初始化對象,但是只能調用init方法。 |
區別
- 1.alloc init在分配內存的時候使用了zone,它是在給對象分配內存的時候把關聯的對象分配到一個相鄰的區域內,以便于調用時消耗很少的內存,提升程序的處理速度;
- 2.使用new來創建對象的話,初始化方法被固定死了,只能使用init,不能調用其他的initWith方法;
- 3.使用alloc init方法,我們可以重寫init方法,但是如果使用new來創建的話就只能走系統的init方法。