[英]Difference between [ self init ] and self = [ super init ]
我不知道如果不重寫“ init”方法,init家庭方法中的[ self init ]
和self = [ super init ]
什么區別。
為什么人們通常在init family方法中使用self = [ super init ]
?
[ self init ]
表示您正在初始化self類。
和
self = [ super init ]
表示初始化超類,並且將返回的地址/內存位置設置為self類。
人們對所有父類(直到NSObject
都使用self = [ super init ]
,所以這樣做非常重要
通常人們使用if (self = [ super init ]) {... return self;}
以防萬一,如果self == nil
,但我從來沒有這樣的事情
[self init]
是不正確的,因為您只是忽略了父類的初始化,這可能是導致錯誤的原因
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.