2012-11-28 39 views
0

我有一些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 

} 
+0

錯誤是因爲標籤被釋放。你如何爲標籤設定價值?你可以添加嗎?還要添加在控制檯中打印的NSLog語句。 – iDev

+0

哦,謝謝你@ACB你指出了正確的方向。在計算方法中,我將文本分配給值而不是文本屬性。我正在寫:'value = [NSString stringWithFormat:@「%f kcal」,(cal/gram)* [amount.text floatValue]];'這是改變引用。感謝您的幫助:) – NightFury

+0

這正是我的想法。讓我加上它作爲答案。請接受。 :) – iDev

回答

0

是因爲標籤是越來越發布和獲得分配的錯誤到NSString。檢查你如何設置標籤的價值。您應該將NSString指定爲UILabel,這會導致它在value參數上調用隱藏屬性時引發此錯誤。

+0

你沒有提到我們在面臨類似問題時應該怎麼做。如何將字符串分配給UILabel並隱藏並取消隱藏 – Dalvik

相關問題