我有一些UILabels已被聲明爲屬性和合成。我隱藏這些標籤在viewDidLoad
。經過一些計算,當我嘗試使用hidden
屬性取消隱藏它們時,應用程序崩潰,並在主題中提到了錯誤。我嘗試了NSLog
以瞭解它是否已被釋放,但它向我展示了很好的標籤值。請有人幫我解決一下正在訪問的內存管理問題。謝謝。__NSCFString setHidden:無法識別的選擇器發送到實例
顯示一些供參考代碼:
在.h文件中:
@interface abc : UIViewController{
UILabel *value;
}
@property(nonatomic,retain) IBOutlet UILabel *value;
在.m文件:
@synthesize value;
-(void) viewDidLoad
{
value.hidden = YES;
}
-(IBAction) calculate:(id)sender
//On some button click, assign some value to label and unhide it
NSLog(@"%@",value); //perfectly OK
value.hidden = NO; //throws exception here
}
錯誤是因爲標籤被釋放。你如何爲標籤設定價值?你可以添加嗎?還要添加在控制檯中打印的NSLog語句。 – iDev
哦,謝謝你@ACB你指出了正確的方向。在計算方法中,我將文本分配給值而不是文本屬性。我正在寫:'value = [NSString stringWithFormat:@「%f kcal」,(cal/gram)* [amount.text floatValue]];'這是改變引用。感謝您的幫助:) – NightFury
這正是我的想法。讓我加上它作爲答案。請接受。 :) – iDev