Ошибка при выполнении перехода: -[длина UITextField]: нераспознанный селектор отправлен в экземпляр

У меня есть код для перехода на другой экран в моем приложении:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data {
    NSString *dataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"Performing Segue...");
    // Open detail segue
    [self performSegueWithIdentifier:@"DetailViewSegue" sender:dataString];
}

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)json
{
    NSLog(@"Testing...");
    // If we are going to the success view, send the JSON data over as well!
    if ([segue.identifier isEqualToString:@"DetailViewSegue"]) {
        DetailViewController *DetailViewControllerSegue = [segue destinationViewController];
        NSDictionary *jsonSendetAsParamInPerformSegue = (NSDictionary*)json;
        DetailViewControllerSegue.jsonString = jsonSendetAsParamInPerformSegue;

    }
}

Когда я пытаюсь выполнить переход, я получаю эту ошибку: -[UITextField length]: unrecognized selector sent to instance 0x14589970

Что означает ошибка? И как я могу это решить?

Спасибо,

Питер


person Peter Stuart    schedule 24.02.2014    source источник
comment
Есть ли какие-либо текстовые поля, к которым обращаются/манипулируют в следующем представлении viewDidLoad или viewWillAppear?   -  person Lyndsey Scott    schedule 24.02.2014
comment
(Кроме того, что такое dataString?)   -  person Lyndsey Scott    schedule 24.02.2014
comment
dataString — это строка JSON, полученная от веб-сервера. Я могу подтвердить, что dataString в порядке, как я называю его в NSLog. Некоторые текстовые поля манипулируются в viewDidLoad, сейчас я это проверю.   -  person Peter Stuart    schedule 24.02.2014
comment
возможный дубликат неопознанный селектор, отправленный экземпляру 0x6b61d10   -  person Hot Licks    schedule 24.02.2014
comment
SO имеет миллионы вопросов. Почему люди не могут перестать закрывать их из-за повторяющихся вопросов, это ожидаемо!!!!!!!   -  person Peter Stuart    schedule 24.02.2014


Ответы (2)


UITextField не имеет селектора с именем length. Вероятно, вы хотите вызвать length для свойства text текстового поля.

[someTextField.text length]

(На самом деле я не вижу ничего, связанного с текстовым полем в опубликованном коде... но это единственное объяснение для данного сообщения об ошибке)

person nhgrif    schedule 24.02.2014
comment
Хотя я не понимаю, почему? И у меня есть несколько текстовых полей в контроллере представления. Кроме того, ни одно из текстовых полей не имеет ничего общего с изменением перехода? - person Peter Stuart; 24.02.2014
comment
Просто просмотрите свой код и выясните, где вы вызываете селектор length. Тут явно проблема. Я тоже не понимаю, почему, поскольку вы не опубликовали код, относящийся к сообщению об ошибке, которое вы получаете. - person nhgrif; 24.02.2014
comment
Я вообще не вызываю селектор длины. Вот где я запутался? - person Peter Stuart; 24.02.2014
comment
@PeterStuart - Посмотрите на стек исключений!! - person Hot Licks; 24.02.2014

Причина, по которой эта ошибка появилась, заключалась в том, что у меня была опечатка в моем идентификаторе перехода раскадровки, и она не совпадала:

@"DetailViewSegue"

in:

[self performSegueWithIdentifier:@"DetailViewSegue" sender:dataString];

Я надеюсь, что это поможет другим в будущем

Питер

person Peter Stuart    schedule 24.02.2014
comment
если это так, пожалуйста, примите свой ответ, чтобы закрыть этот вопрос. - person Marco; 24.02.2014
comment
@Марко, тебе нужно подождать не менее 2 дней, прежде чем ты сможешь принять свой собственный ответ. Глупо, я знаю. - person Peter Stuart; 24.02.2014
comment
Я не знал этого. В любом случае спасибо за публикацию ответа на свой вопрос, не все находят время для этого. - person Marco; 24.02.2014