objective-c - Objective C 没有抛出足够多的错误?

标签 objective-c ios

<分区>


想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它.

关闭 9 年前

我是 Objective C 的新手,无论如何都不是 super 程序员,但我觉得奇怪的一件事是,当对象被声明为未初始化时,它有时不会抛出错误。

我又遇到了这个 - 我有一些设置要完成,所以我把它放在 init 函数中 - 但是这个类是一个 UIViewController在 Storyboard 中连接起来。所以 init 从未被调用过——这是我的错误——(项目中有很多 NSObject 派生类,我匆忙把它扔进去测试一些东西)。

但是我的方法调用了本应在 int 中设置的实例并没有抛出错误 - 只是我期望的值为 nil。

那种东西会悄无声息地失败,这不是很奇怪吗?

最佳答案

这里有两个不同的问题,对于初学者来说都很常见。

  1. 您的 init 从未被调用,因为它完全是错误的方法。它不是 View Controller 的指定初始化程序,并且在任何情况下,来自 nib 或 Storyboard的 View Controller 都会获取 initWithCoder:。因此,您应该了解将调用什么方法以及何时调用。

  2. 发送给 nil 的消息返回 nil 且没有错误。这是 Objective-C 根深蒂固的特性,不会改变。经常有关于它的准宗教辩论,并且有一些聪明的方法来解决它,但那既不存在也不存在。基本上,是否使用大量 NSLog 和大量 nil-checking(NSAssert 非常适合用于此)取决于您,尤其是在早期阶段。

关于objective-c - Objective C 没有抛出足够多的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9753378/

上一篇:iOS - 设置 - Modal Segue to Table view controller

下一篇:ios - 对 touchBegan 示例感到困惑

相关文章:

ios - 从另一个 View Controller 导航栏加载 View Controller 的 UIWebView 中的请求 url

ios - 在隐藏状态栏的同时保持 UINavigationBar 的大小

ios - 在 ios web 服务的 NSURL 连接上使用 web 服务库(RESTKIT/ASIHTTP 请求)的优点

ios - UITextView 在 iPhone 5/5s 上切断文本,但在 iPhone 6 上没有

ios - 您无权使用此服务 iTunes 应用上传错误

iphone - 如何使用 addSubview 在 UIScrollView 中添加按钮?

ios - 替换 WatchKit 中分层导航堆栈中的 Controller

ios - UIWebView - 如何在 iPad 上显示 iPhone 大小的内容

ios - presentRenderbuffer 触发 EXC_BAD_ACCESS

ios - 如何固定在 iOS 版谷歌地图上?