2011-08-20 33 views
1

我只是试图将UITextField.text分配给我的对象中的NSString。 当我尝试打印enteredLocation.text时出错代码,但我不知道为什么。我认为这是一种类型不匹配,但都是NSString。任何想法?如何将UITextField分配给NSString(与UITouchEvent错误?)

- (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-clicked按钮到我的.m文件中的方法。有没有一步失踪?我试着检查文本是否是“”,但它甚至不会那么远。

我有我是一个主要的新手,所以在此先感谢。我读过这个网站上的100个答案,并且很喜欢它!非常有帮助!

谢谢! 马克

回答

1

当动作触发了您的按钮,该方法签名会看起来像这些之一:

-(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 

你不能控制什么得到通过改变参数传递到您的处理程序。如果您需要访问文本字段,请确保在您的类中存在对UITextField对象的IBOutlet引用(并将其挂接到IB中)并使用它来访问它。

+0

Oooohhhhh ....我以为我传递了一切我想使用的东西。但我猜测这些方法可以自动访问所有的实例变量。正确? –

+0

所以,如果我只是推一个按钮,我需要: - (IBAction)submitPushed:(UIButton *)submitButton; –

+0

然后通过实例变量获取文本字段信息!疑难杂症!谢谢!!! –

1

我猜你有IBAction迷上了你的笔尖的错误行为 - 一个是触摸事件。如果你尝试:

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

你会看到,该方法被传递一个UITouchesEvent对象,而不是一个UITextField对象。

仔细检查你的笔尖连接。

+0

这就是我所说的逻辑,但是我已经删除并重新分配到了无济于事的地步。 –

+0

这里的按钮的属性: 触摸的内心:文件所有者submitPushed ::: ___引用奥特莱斯___ 提交按钮:文件所有者 –

+0

如何添加在这些评论的回报? –