1.在看stanford的IOS7開發(fā)視頻的時(shí)候,發(fā)現(xiàn)教授在聲明屬性@PRoperty之后,并未在implementation中添加@synthesize語句而合成存取方法,但是可以直接在代碼中 使用存取方法,所以很困惑。 本書提到 原來在Xcode4.5以后的版本中,可以不必使用@synthesize了。另外如果沒有指定實(shí)例變量,編譯器會(huì)自動(dòng)幫我們創(chuàng)建。
2. 在實(shí)例變量聲明可以放在頭文件.h,或者實(shí)現(xiàn)文件.m。兩者的區(qū)別是:放在頭文件里的變量,該類的子類可以直接通過屬性來訪問變量,而放在實(shí)現(xiàn)文件里的,只屬于當(dāng)前類。
3.關(guān)于對象初始化方法中的 if (self = [super init ]) : 這個(gè)聲明中最先運(yùn)行的代碼是[ super init] ,其作用是讓父類完成其自身的初始化工作。對于繼承了NSObject的類來說,調(diào)用父類的init方法可以讓NSObject執(zhí)行它所需的所有操作,以便對象能夠響應(yīng)消息,并處理引用計(jì)數(shù)器。而對于從其他類繼承的類,通過這種方法可以實(shí)現(xiàn)自身的全新初始化。init可能會(huì)返回完全不同的對象。self參數(shù)是通過固定的距離尋找實(shí)例變量所在的內(nèi)存位置的。如果從init方法返回一個(gè)新對象,則需要更新self,以便其后的實(shí)例變量的引用可以正確的內(nèi)存位置。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注