iOS開發_new與alloc init 的區別

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方法。

有問題歡迎指正以及相互探討 —— CoderSun

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容