属性是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之间的混淆,可以帮我解决这个问题吗? –