1.區(qū)別:self.是訪問屬性的诱篷,_是訪問實(shí)例變量的。
屬性是實(shí)例變量+get/set方法的集合體崭孤,主要承擔(dān)外部訪問的接口类嗤。
實(shí)例變量只能在本類中可訪問,外部不可訪問辨宠。
2.原則:在類內(nèi)部訪問變量時(shí)用“_”遗锣,在類外部(其他類里)訪問該類的變量時(shí)用“.” 。
3.注意??:
手動(dòng)管理內(nèi)存的情況嗤形,
使用“.”初始化變量時(shí)精偿,會(huì)產(chǎn)生內(nèi)存泄漏的問題。
如赋兵,self.nameArray = [NSMutaleArray alloc] init];
上述代碼笔咽,在self.nameArray時(shí)相當(dāng)于調(diào)用了set方法,引用計(jì)數(shù)+1霹期,后面alloc時(shí)拓轻,引用計(jì)數(shù)再次+1。在dealloc中release時(shí)经伙,引用計(jì)數(shù)只減了一次扶叉,并沒全部釋放,就造成了內(nèi)存泄漏帕膜。
解決方法:用“_”初始化及訪問變量枣氧,就不會(huì)產(chǎn)生內(nèi)存泄漏。
如垮刹,_nameArray = [NSMutaleArray alloc] init];
自動(dòng)管理內(nèi)存(ARC)的情況达吞,
不存在上述問題。但從編碼規(guī)范上考慮荒典,還是要注意下@医佟M萄肌!