특정 조건이 충족되지 않을 때 경고로 사용되는 레이블이 있습니다. 나는 다음과 같은 코드를 숨겨에 레이블을 설정하려고 시도 때 : 내가 생각레이블을 숨김으로 설정하려고하면 IOS 5 오류가 발생합니다.
이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)
{
}
}
(명백하게) 작동하지만 것입니다하지 않습니다 문맥
infoWarning.hidden = YES;
을, 여기에 전체 코드 . 줄에서 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이 훌륭하게 작동합니다. @property
및 @synthesize
문은 무엇
글쎄, 아마 당신은 우리에게 당신이 YES로 숨겨진 설정 라인을 보여 주어야한다? –
그래서 오류를주는 코드는 실제로 질문에 넣은 코드가 아닙니다. infoWarning의 선언, 속성 등을 표시하고 숨길 방법을 알려주시겠습니까? – jrturton
@ Hot Licks : the infoWarning.hidden = YES; 오류가있는 정확한 행입니다. @jrturton : 게시물을 편집하고 추가 할 것입니다. 죄송합니다. – Zeff520