这是一个非常简单的问题之一,我无法相信我在这里问它。但是,我很难过,所以我走了:我想在将来的某个时间创建一个NSDate
。我觉得这很容易,但是当我尝试时:
NSDate *destinationDate = [NSDate dateWithTimeIntervalSinceNow:30];
下一行的断点表明destinationDate
“不是Objective-C对象”。我尝试了一百万种不同的版本:
NSDate *destinationDate = [[NSDate alloc] init];
destinationDate = [NSDate dateWithTimeIntervalSinceNow:30];
到此:
NSDate *destinationDate = [NSDate date];
到此(建议here):
NSDate *destinationDate = [[NSDate date] copy];
没有任何作用!他们都是“不是Objective-C对象”!我确信这是一件简单而令人尴尬的事情,我很遗憾,但我完全不知所措。有人可以帮助我吗?
答案 0 :(得分:1)
嗯,您可以在文档here中看到NSDate确实是一个NSObject,其中的一个是Objective-C对象。
这可能是调试器面板的一个错误,不幸的是它发生了很多。当发生这种奇怪的事情时,总是使用控制台,在断点处使用po myVariable
来检查变量的内容,它更可靠。
答案 1 :(得分:0)
根据苹果的文档,NSDate是NSObject的子类。
您列出的方法(alloc / init和类方法dateWithTimeIntervalSinceNow :)是有效用途。
在不知道您的实际问题是什么的情况下很难说更多,但如果您不使用ARC,您可能会检查您是否正确保留/发布。
答案 2 :(得分:0)
您是否在断点之后使用变量?否则,当您点击断点时,该对象可能已经被释放,因为该应用程序不再需要它。然后你会得到一个“非对象”的消息。
答案 3 :(得分:0)
基金会不包括在项目中吗?
#include <Foundation/foundation.h>