ios - 找出 Objective-C 中异常的原因

标签 ios objective-c

完成教程后:Start Developing iOS Apps Today

我在这里遇到了同样的异常:IOS Tutorial Exception (ToDo Sample) 应用程序崩溃了,但如果我启动调试 session 并单步执行代码,它就不会崩溃。

2015-05-04 16:09:51.569 ToDoList[9223:67681] -[AddToDoItemViewController textField:]: unrecognized selector sent to instance 0x7fe570d4eff0
2015-05-04 16:09:51.574 ToDoList[9223:67681] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AddToDoItemViewController textField:]: unrecognized selector sent to instance 0x7fe570d4eff0'

然后我通过阅读这篇文章解开了这个谜团:IOS Tutorial Exception (ToDo Sample)

原因是我错误地将文本字段连接到@implemenation 部分而不是@interface 部分,它创建了一些我删除的方法。当然,在那之后我很快就忘记了。

我怎么能在不知道以上任何内容的情况下弄清楚自己是什么原因导致该异常以及它从何而来?

最佳答案

日志消息告诉您有东西试图调用 AddToDoItemViewController-textField: 方法。

因此,第一步是检查该方法是否已实现 - 在您的情况下未实现。您可能对

的存在感到困惑
@property(weak, nonatomic) IBOutlet UITextField* textField

但是属性的自动合成生成带有签名-textField的getter,它不同于-textField:(后者带一个参数,而前者没有)。

关于ios - 找出 Objective-C 中异常的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30030171/

相关文章:

ios - 使用 IBAction/按钮进行应用内购买

ios - 如何以及哪些应用程序属于MDM配置文件

ios - 无法将单元测试添加到现有的 iOS 项目

ios - 如何将带有 URL Shema 的 UIImage 分享到 Instagram 应用程序?

ios - Microsoft Graph API 问题 iOS : Unable to Complete Request Validation Error

ios - 一旦 iAd 的委托(delegate)方法被调用,iAd 就不会异步显示

ios - AutoLayout:无法同时满足约束日志不清楚

objective-c - 文字对象语法是否仅适用于 OS X 开发?

objective-c - 如何在不先创建二进制文件的情况下将NSData加载到UIWebView

objective-c - 在 NSStream 上设置 SSL 或 TLS 安全