【问题标题】:UILabel string release?UILabel 字符串发布?
【发布时间】:2011-07-19 14:56:44
【问题描述】:
我有这样的 IBAction:
-(IBAction)
{
[kolikoZvanja setText: [NSString stringWithFormat: @"%i + ", [Data variables].zvanja]];
}
其中[Data variables].zvanja通过程序更改,所以UILabel也通过程序更改,我需要每次releasekolikoZvanja吗?
【问题讨论】:
标签:
iphone
string
release
uilabel
【解决方案1】:
你需要释放那些你保留的东西。您可以通过调用包括new、alloc、copy 或retain 在内的方法来保留内容。
您没有在此方法中的任何地方调用retain,因此您没有理由调用release。
【解决方案2】:
不,当然不是。如果您每次都释放标签,您将无法再设置其文本,或者您每次都重新分配/初始化它并重新将其添加到视图中。
标签显示的字符串是由它复制的,所以它负责释放它。
【解决方案3】:
kolikoZvanja 是一个属性,它是指向UILabel 的指针。因为您只设置了此UILabel 的text 属性,所以您无法释放kolikoZvanja,这是您的UILabel 的“访问门”。释放kolikoZvanja 会导致丢失指向UILabel 的指针,因此您将无法设置它的text 属性。