屬性是inface你的方法getter和setter,當過您通過self.dateformator稱呼它,它會調用屬性,如果你已合成的對象和自我生成getter和setter命名(的setProperty和getProperty),
在你的情況下,你的第一行不是propery,你直接訪問你的類的ivar,而你的代碼的第二行中,你正在使用屬性getter和setter方法,
現在你的問題有什麼不同,
區別在於,在iVar訪問(您的第一行),y您將不得不手動釋放該對象,並且將保留計數1增加,並且分配的內存將與其相關聯。而在self.property中,會分配一個內存,但是當蘋果屬性管理執行此操作時,將爲該變量分配一個新塊。但保留數將再次相同。
所以一塊內存將會丟失。
現在我想告訴一些有益的事情,那就是爲對象使用屬性,因爲如果你在接口文件中的屬性屬性中寫入了保留,那麼你的內存管理將在compileres結束,但請記住使用dealloc方法編寫發行版。爲此,你必須writter這裏行代碼,就像
self.someProperty = [[NSArray alloc] init];
使用它作爲
NSArray* arr = [[NSArray alloc] init];
self.someProperty = arr;
[arr release];
現在
您的保留計數將是一樣的,你想要的那一個,而don'd關懷在哪裏釋放它,如果你寫了它,它會在dealloc方法中自動釋放。
和前面寫一個,你必須保持跟蹤,你必須釋放對象
可能重複[http://stackoverflow.com/questions/5251600/difference-between-accessing- a property-via-propertyname-versus-self-property](http://stackoverflow.com/questions/5251600/difference-between-accessing-a-property-via-propertyname-versus-self-property) –
Thx,其實我還有財產和_property之間的混淆,可以幫我解決這個問題嗎? –