通过采取什么措施来解决这些错误(iOS)…有什么build议?

我完全不熟悉iOS开发,并使用一本书来学习。 按照前几章的指导,我写了一个简短的应用程序(代码如下)。 它只需要一些文本input并更改标签的文本以匹配它。 但是,在模拟器中运行代码时,单击文本字段时出现以下错误:

2012-06-08 11:26:06.595 HelloNoun [14926:f803]打开'/ Users / clhu / Library / Application Support / iPhone Simulator / 5.1 / Library / Caches / com.apple.keyboards / images / 1859589221'失败:'没有这样的文件或目录'(2)

2012-06-08 11:26:06.702 HelloNoun [14926:f803]'INSERT INTO VALUES(?,?,?,?,?,?,?

然后,当我按下button来设置标签,我也得到这些错误:

2012-06-08 11:27:09.050 HelloNoun [14926:f803] – [UIView text]:发送到实例0xb75ac80的无法识别的select器

2012-06-08 11:27:09.051 HelloNoun [14926:f803] *由于未捕获的exception'NSInvalidArgumentException',原因:' – [UIView text]:无法识别的select器发送到实例0xb75ac80'

*首先掷出调用堆栈:

(0x13c7022 0x1558cd6 0x13c8cbd 0x132ded0 0x132dcb2 0x21a7 0x13c8e99 0x1414e 0x140e6 0xbaade 0xbafa7 0xba266 0x393c0 0x395e6 0x1fdc4 0x13634 0x12b1ef5 0x139b195 0x12ffff2 0x12fe8da 0x12fdd84 0x12fdc9b 0x12b07d8 0x12b088a 0x11626 0x1dad 0x1d15)终止叫做抛出exception(LLDB)

我仔细查看过我的连接,现在几次重复我的步骤,没有看到任何明显的错误(尽pipe我对此很新颖)。 有谁能帮我指出正确的方向吗? 谢谢!


代码如下:

// ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (strong, nonatomic) IBOutlet UILabel *userOutput; @property (strong, nonatomic) IBOutlet UITextField *userInput; - (IBAction)setOutput:(id)sender; @end 

 // ViewController.m #import "ViewController.h" @implementation ViewController @synthesize userOutput; @synthesize userInput; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)viewDidUnload { [self setUserOutput:nil]; [self setUserInput:nil]; [super viewDidUnload]; // Release any retained subviews of the main view. } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } - (IBAction)setOutput:(id)sender { self.userOutput.text = self.userInput.text; } @end 

我从来没有见过第一个错误,但可以尝试删除path/Users/clhu/Library/Application Support/iPhone Simulator/5.1/Library/Caches的caching文件夹。 模拟器应该足够聪明来重新创build它。

对于第二个错误,我通常会看到,当我连接一个属性到NIB中的错误视图。 它看起来像属性userOutput指向UIView而不是UITextField。 您可以检查NIB中的连接,或通过将以下行添加到setOutput:来打印出userOutput的值setOutput:

 NSLog(@"%@", self.userOutput); 

你日志中的输出应该看起来像这样

<UITextField: 0x6fea9f0; frame = (0 0; 100 31); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x6fec700>>