创建空的NSDate对象

时间:2010-09-14 15:16:11

标签: iphone objective-c cocoa-touch xcode nsdate

这可以吗?

NSDate *myDate;

因为我之前使用过这样的东西:

NSDate *myDate = [[NSDate alloc] init];

if (something)
     myDate = thisDate;
else
     myDate = thatDate;

[myFunction initWithDate:myDate];

我总是得到“在初始化期间存储到'myDate'的值永远不会被读取”。如果我做这样的事情

if (something)
     NSDate *myDate = thisDate;
else
     NSDate *myDate = thatDate;

[myFunction initWithDate:myDate];

我得到“未使用的变量'myDate'”和“'myDate'未声明(首次使用此功能)”

发布如何?自动释放?

2 个答案:

答案 0 :(得分:0)

你的第一次尝试是关闭的

NSDate *myDate;

if (something)
     myDate = thisDate;
else
     myDate = thatDate;

[myFunction initWithDate:myDate];

第一行声明一个名为myDate的NSDate变量。然后运行测试并适当设置myDate的值。

答案 1 :(得分:0)

如果您只想指向预先存在的日期,可以执行以下操作:

NSDate *myDate = something ? thisDate : thatDate;
[myFunction initWithDate:myDate];

甚至

[myFunction initWithDate:something ? thisDate : thatDate];

然而,为了更清楚地回答你的问题,是的,这应该没问题:

NSDate *myDate;

if (something) {
    myDate = thisDate;
} else {
    myDate = thatDate;
}

如果需要,您还可以将myDate初始化为nil(myDate = nil)。

就内存管理而言,你只是设置一个指针 - 你没有创建一个新对象,或者取得现有对象的所有权(通过retain) - 所以你没有需要使用releaseautorelease