这可以吗?
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'未声明(首次使用此功能)”
发布如何?自动释放?
答案 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
) - 所以你没有需要使用release
或autorelease
。