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
===========================================