这里有几个线程讨论了向 Calendar 方法发送 nil 日期时在控制台中弹出的新 iOS 6 Xcode 错误:
-[__NSCFCalendar components:fromDate:toDate:options:]: fromDate cannot be nil
I mean really, what do you think that operation is supposed to mean with a nil fromDate?
An exception has been avoided for now.
A few of these errors are going to be reported with this complaint, then further
violations will simply silently do whatever random thing results from the nil.
这个错误让我轻笑了一下,但让我开始思考......
我编写的导致此错误的代码从多个来源(来自日期格式化程序、字符串、用户输入等)获取日期信息,我真的不希望提供的每个日期都是有效的 - 我知道很好,有些会为零,我很高兴处理这些对象的结果。
当我第一次开始使用 Objective C 编程时,我读到的其中一个特性是向 nil 对象发送消息。这很棒,因为这意味着我不必担心传递 nil 对象。
现在我从 Xcode 收到了一条脾气暴躁的错误消息,告诉我我已经向一个 nil 对象发送了一条消息。
现在的推论是我必须在方法中使用它之前检查每个对象不是 nil 吗?我在使用 nil 对象做一些完全令人发指的事情吗?