object c中 new和alloc区别
生活随笔
收集整理的這篇文章主要介紹了
object c中 new和alloc区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在object-c基礎教程這本書里老是可以看見類似下面這種代碼,我這小菜鳥就納悶了,啥區別啊,看上去都一樣么。網上找了找,找到一些說法,這里先摘出來。
? ??className* object = [className?new];
or
? ??className* object = [[className?alloc] init];
背景說明,new是較為老式的寫法,后來發現只有一個new不好使,才引入了alloc和init這種寫法,保留new一是向后兼容,二是很多時候是一種更簡單的寫法。其實是一樣的,new在內部調用的alloc和init.
什么要把alloc 和init 分開?
1. 可以使用多種init方法
2.?顯示調用總比隱式調用要好”
如果確實不需要用其他的init函數,比如initWithString, 只是使用 [Nsobject alloc] init] ,那用new的方法更加方便
?* new doesn't support custom initializers (like initWithString)
? ??className* object = [className?new];
or
? ??className* object = [[className?alloc] init];
背景說明,new是較為老式的寫法,后來發現只有一個new不好使,才引入了alloc和init這種寫法,保留new一是向后兼容,二是很多時候是一種更簡單的寫法。其實是一樣的,new在內部調用的alloc和init.
源代碼:
什么要把alloc 和init 分開?
1. 可以使用多種init方法
2.?顯示調用總比隱式調用要好”
如果確實不需要用其他的init函數,比如initWithString, 只是使用 [Nsobject alloc] init] ,那用new的方法更加方便
?* new doesn't support custom initializers (like initWithString)
?* alloc-init is more explicit than new
===========================================
總結
以上是生活随笔為你收集整理的object c中 new和alloc区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Excel做题记录——整数规划优化模型
- 下一篇: HDFView