當某些條件未得到滿足時,我有一個標籤用作警告。但是,當我試圖設置爲隱藏用下面的代碼標籤:嘗試將標籤設置爲隱藏時發生IOS 5錯誤
infoWarning.hidden = YES;
上下文,這裏是全碼:
if (weightC < 50 || (waistM1 < 20 && waistM2 < 20 && waistM3 < 20) || (ageC < 18))
{
infoWarning.hidden = NO;
NSString *warning = @"";
if(ageC < 18)
{
warning = @" an age over 17";
}
if (averageWaistM < 20) {
if (warning != @"") {
warning = [NSString stringWithFormat:@"%@, and", warning];
}
warning = [NSString stringWithFormat:@"%@ a waist measurement", warning];
}
if (weightC < 50) {
if (warning != @"") {
warning = [NSString stringWithFormat:@"%@, and", warning];
}
warning = [NSString stringWithFormat:@"%@ a weight", warning];
}
if ([email protected]"") {
[infoWarning setText:[NSString stringWithFormat:@"Please add%@.", warning]] ;
}
} else {
if(gender.selectedSegmentIndex == 0)
{
}
else if(gender.selectedSegmentIndex == 1)
{
}
}
那我想會的工作,但(顯然)不。它給我一條線上的EXC_BAD_ACCESS錯誤:
infoWarning.hidden = YES;
infoWarning確實存在,被合成並連接到Interface Builder中的UILabel。你能幫我找出問題並讓它工作嗎?
這是.h文件:
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
@class Preferences;
@class Utilities;
@interface BodyFatCalculatorViewController : UIViewController {
IBOutlet UITextField *age;
IBOutlet UITextField *waist1;
IBOutlet UITextField *waist2;
IBOutlet UITextField *waist3;
IBOutlet UITextField *weight;
IBOutlet UILabel *waist;
IBOutlet UILabel *currentWeight;
IBOutlet UILabel *bodyFat;
IBOutlet UILabel *averageWaist;
IBOutlet UILabel *veryLean;
IBOutlet UILabel *veryLeanBorder;
IBOutlet UIImageView *veryLeanCheckmark;
IBOutlet UILabel *fit;
IBOutlet UILabel *fitBorder;
IBOutlet UIImageView *fitheckmark;
IBOutlet UILabel *average;
IBOutlet UILabel *averageBorder;
IBOutlet UIImageView *averageCheckmark;
IBOutlet UILabel *atRisk;
IBOutlet UILabel *atRiskBorder;
IBOutlet UILabel *atModRisk;
IBOutlet UILabel *atModRiskBorder;
IBOutlet UILabel *atHighRisk;
IBOutlet UILabel *atHighRiskBorder;
IBOutlet UILabel *infoWarning;
IBOutlet UISegmentedControl *gender;
NSMutableArray *arrayAge;
}
@property (nonatomic, retain) IBOutlet UITextField *age;
@property (nonatomic, retain) IBOutlet UITextField *waist1;
@property (nonatomic, retain) IBOutlet UITextField *waist2;
@property (nonatomic, retain) IBOutlet UITextField *waist3;
@property (nonatomic, retain) IBOutlet UITextField *weight;
@property (nonatomic, retain) IBOutlet UILabel *waist;
@property (nonatomic, retain) IBOutlet UILabel *currentWeight;
@property (nonatomic, retain) IBOutlet UILabel *bodyFat;
@property (nonatomic, retain) IBOutlet UILabel *averageWaist;
@property (nonatomic, retain) IBOutlet UILabel *veryLean;
@property (nonatomic, retain) IBOutlet UILabel *veryLeanBorder;
@property (nonatomic, retain) IBOutlet UIImageView *veryLeanCheckmark;
@property (nonatomic, retain) IBOutlet UILabel *fit;
@property (nonatomic, retain) IBOutlet UILabel *fitBorder;
@property (nonatomic, retain) IBOutlet UIImageView *fitCheckmark;
@property (nonatomic, retain) IBOutlet UILabel *average;
@property (nonatomic, retain) IBOutlet UILabel *averageBorder;
@property (nonatomic, retain) IBOutlet UIImageView *averageCheckmark;
@property (nonatomic, retain) IBOutlet UILabel *atRisk;
@property (nonatomic, retain) IBOutlet UILabel *atRiskBorder;
@property (nonatomic, retain) IBOutlet UILabel *atModRisk;
@property (nonatomic, retain) IBOutlet UILabel *atModRiskBorder;
@property (nonatomic, retain) IBOutlet UILabel *atHighRisk;
@property (nonatomic, retain) IBOutlet UILabel *atHighRiskBorder;
@property (nonatomic, retain) IBOutlet UILabel *infoWarning;
@property (nonatomic, retain) IBOutlet UISegmentedControl *gender;
-(IBAction)valueChanged:(id)sender;
-(IBAction)textFieldDoneEditing:(id)sender;
-(void)calculate;
@end
問題已得到修復,謝謝你對那些誰回答,看着它。這個問題實際上是一個限制太小的數組(我不知道爲什麼會導致這個問題被打破,他們根本就沒有關係......),所以我增加了限制,現在infoWarning工作的很好。
好吧,也許你應該告訴我們,您可以設置隱藏到YES行? – 2011-12-19 21:08:23
那麼,給你錯誤的代碼實際上並不是你在問題中提出的代碼?你能顯示infoWarning的聲明,屬性等,並告訴我們你試圖隱藏它的方法嗎? – jrturton 2011-12-19 21:10:27
@ Hot Licks:infoWarning.hidden = YES;是它有錯誤的確切線。 @jrturton:我將編輯帖子並添加這些內容。抱歉。 – Zeff520 2011-12-19 21:13:00