Как назначить UITextField для NSString (с ошибкой UITouchEvent?) - PullRequest
1 голос
/ 20 августа 2011

Я просто пытаюсь назначить UITextField.text для NSString в моем объекте. Код ошибки, когда я пытаюсь напечатать enterLocation.text, но я понятия не имею, почему. Я думал, что это несоответствие типов, но оба NSString. Есть идеи?

- (IBAction) submitPushed: (UITextField*)enteredName: (UITextField*)enteredCell: (UITextField*)enteredLocation;
{
    ExampleAppDataObject* theDataObject = [self theAppDataObject];
    NSLog(@"LOC  %@", enteredLocation.text);
    theDataObject.location = enteredLocation.text;
    NSLog(@"DATAOBJ  %@", theDataObject.location);

}

Я всегда получаю эту ошибку:

2011-08-20 10:28:13.602 ViewControllerDataSharing[3188:207] -[UITouchesEvent text]: unrecognized selector sent to instance 0x4e07780
2011-08-20 10:28:13.607 ViewControllerDataSharing[3188:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITouchesEvent text]: unrecognized selector sent to instance 0x4e07780'

Но UITouchEvent? Как это связано? Я нажал Ctrl и нажал кнопку метода в моем файле .m. Не хватает ли шага? Я попытался проверить, является ли текст "", но это даже не зашло так далеко.

У меня есть новичок, так что спасибо заранее. Я прочитал сотни ответов на этом сайте, и мне это нравится! Так полезно!

СПАСИБО! Mark

Ответы [ 2 ]

1 голос
/ 20 августа 2011

Когда действие запускается для вашей кнопки, сигнатура метода будет выглядеть следующим образом:

-(IBACtion)onPushed; // no parameters

-(IBAction)onPushed:(id)sender; // sender is the control that initiated the event

-(IBAction)onPushed:(id)sender event:(UITouchesEvent*)event; // event is the touch event that caused the event

Вы не можете контролировать то, что передается вашему обработчику, изменяя параметры.Если вам нужно получить доступ к текстовому полю, убедитесь, что в вашем классе есть ссылка IBOutlet на объект UITextField (и подключите его в IB) и используйте его для доступа к нему.

1 голос
/ 20 августа 2011

Я предполагаю, что у вас есть IBAction, подключенный к неправильному действию в вашем наконечнике - событии касания.Если вы попробуете:

NSLog(@"Param1: %@", enterdLocation);

Вы увидите, что методу передается объект UITouchesEvent вместо объекта UITextField.

Дважды проверьте подключение пера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...