这可能是什么错误?
int flag11 = 1;
if (([self.textField1.text length]>0) &&
([self.textField4.text length]>0) &&
([self.textField3.text length]>0) &&
(([self.textField2.text length]>0) || (flag11)))
{
NSLog(@"Please display me");
// Some statements //
}
此处,前三个条件为TRUE。由于flag11为1,最后一个显然应该为TRUE。
错误Current language: auto; currently objective-c
(gdb)
和Program received error: SIGABRT
错误,未按预期输入IF
内部声明。
注意: 如果我删除flag11
,而我只有这四个条件,那就可以了!我想知道的是,为什么在flag11
添加到代码时报告错误。
答案 0 :(得分:0)
SIGABRT意味着您正在尝试访问不存在的内容。您是否正确创建了所有文本字段和/或在IB中拖动正确的连接?
答案 1 :(得分:0)
这很奇怪。我制作了一个示例项目,其中包含4个文本字段和一个连接到执行检查的操作的按钮,NSLog的结果似乎正常。如果你想看,这是代码:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UITextFieldDelegate> {
IBOutlet UITextField * textField1;
IBOutlet UITextField * textField2;
IBOutlet UITextField * textField3;
IBOutlet UITextField * textField4;
}
@property (nonatomic, retain) IBOutlet UITextField * textField1;
@property (nonatomic, retain) IBOutlet UITextField * textField2;
@property (nonatomic, retain) IBOutlet UITextField * textField3;
@property (nonatomic, retain) IBOutlet UITextField * textField4;
- (IBAction)buttonPress;
@end
#import "ViewController.h"
@implementation ViewController
@synthesize textField1;
@synthesize textField2;
@synthesize textField3;
@synthesize textField4;
- (void)dealloc; {
[super dealloc];
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; {
return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField; {
if(textField == textField1){
[textField1 resignFirstResponder];
}
else if(textField == textField2){
[textField2 resignFirstResponder];
}
else if(textField == textField3){
[textField3 resignFirstResponder];
}
else{
[textField4 resignFirstResponder];
}
return YES;
}
- (IBAction)buttonPress; {
int flag11 = 1;
if (([self.textField1.text length]>0) &&
([self.textField4.text length]>0) &&
([self.textField3.text length]>0) &&
(([self.textField2.text length]>0) || (flag11)))
{
NSLog(@"Please display me");
// Some statements //
}
else{
NSLog(@"Nothing");
}
}
@end
我坚持的一件事是你把textField2放在一个不需要任何文本的地方。 (笑)我想唯一可以确定的是,4个文本字段连接到正确的IBOutlet,并且文件的所有者也是每个文本的委托。希望有所帮助!