Я только начинаю изучать развитие IOS и Objective C и я следую учебник Apple (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
Подключены ли вы к вашему IBOutlet, называемому addTaskField, в UITextField в вашем раскадровке? Я думаю, потому что addTaskField не подключен ни к одному текстовому полю внутри раскадровки, он равен null, а self.addTaskField.text имеет значение null, поэтому запрос длины self.addTaskField.text будет вызывать исключение – CjCoax
Я уверен, что это потому что перед тем, как произошла ошибка, я вижу введенный текст, заполненный в таблице, но через секунду после сбоя приложения. Поэтому кажется, что все вызывается и массив обновляется, но в конце происходит что-то, что приводит к сбою всего. –