我刚开始学习iOS开发和Objective C和我下面的苹果教程(https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/ThirdTutorial.html#//apple_ref/doc/uid/TP40011343-CH10-SW1)的UITextField不真正工作
我有一个文本字段,增加了一个新的任务到一个数组。当我按“完成”任务被添加到阵列,它出现在tableview中 - 但后来我得到这个在调试:
[XYZViewController addTaskField:]:无法识别的选择发送到实例0x7fb13348c8c0 2014- 10-16 18:00:36.120 Tutorial123 [7880:1837804] ***终止应用程序由于未捕获的异常 'NSInvalidArgumentException',原因: ' - [XYZViewController addTaskField:]:无法识别的选择发送到实例0x7fb13348c8c0'
以下是我在该文件中处理文本字段的代码:
#import "XYZViewController.h"
#import "ToDoItem.h"
@interface XYZViewController()
@property (weak, nonatomic) IBOutlet UITextField *addTaskField;
@property (weak, nonatomic) IBOutlet UIBarButtonItem *doneButton;
@end
@implementation XYZViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if(sender != self.doneButton) return;
if(self.addTaskField.text.length > 0){
self.todoItem = [[ToDoItem alloc] init];
self.todoItem.itemName = self.addTaskField.text;
self.todoItem.completed = NO;
}
}
@end
哪行代码导致错误?如果您不知道,请参阅http://raywenderlich.com/10209/my-app-crashed-now-what-part-1 – rmaddy 2014-10-16 22:07:11
您是否已连接将您的IBOutlet称为addTaskField连接到故事板中的UITextField?我认为是因为addTaskField没有连接到故事板内的任何文本字段,它是null,并且self.addTaskField.text为null,所以要求self.addTaskField.text的长度会引发异常 – CjCoax 2014-10-16 22:24:55
我确信它是因为在发生错误之前,我看到我输入的文本填充在表中,但是在错误崩溃之后第二秒。因此,似乎所有的东西都被调用并且数组被更新了,但最终发生的事情会使所有的东西崩溃。 – 2014-10-16 22:57:38