Oli*_*ver 1 objective-c self nsdate categories
我在NSDate上有一个类别,我想实现一些函数来操作日期,比如:
NSDate *thedate = [NSDate date];
[thedate setToMidnight];
Run Code Online (Sandbox Code Playgroud)
所以我在NSDate中有一个函数,如:
-(void)setToMidnight {
some code with calendars and comps
self = theNewDate;
}
Run Code Online (Sandbox Code Playgroud)
这在函数内部工作,但在该成员函数之外,日期没有改变.我理解这个故障,因为我被告知self只是在成员函数内创建的局部变量.那么,我怎样才能做到这一点呢?
当然,我本来可以写的:
thedate = [thedate dateAsMidnightDate]
or thedate = [NSDate dateAtMidnightFromDate:thedate]
Run Code Online (Sandbox Code Playgroud)
但我觉得它在实例类中更有意义,因为我不想更改日期,只是调整以前创建的一些值.
你不能.特别:
函数或方法不能修改调用上下文中的局部变量.
NSDate不可变(即一旦创建NSDate就无法修改).
因此,不能编写这样的方法.您可以获得的最接近的类是包装NSDate并将消息转发到该内部NSDate对象的类,该对象在您希望使其代表新日期时重新分配日期实例变量.
| 归档时间: |
|
| 查看次数: |
1123 次 |
| 最近记录: |