如何将NSDate转换为NSString?

lee*_*ena 10 iphone

转换NSDateNSString创建内存泄漏可以任何人帮助.

这是我的代码: -

NSDate *today = [[NSDate alloc]init];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];
dateString = nil;
dateString =[[NSString alloc]initWithString:[df stringFromDate:today]];
[df setDateFormat:@"EEEE       MMM dd yyyy"];
[dateButton setTitle:[df stringFromDate:today] forState:UIControlStateNormal];
[df release];
[today release];
Run Code Online (Sandbox Code Playgroud)

Kyl*_*lls 8

由于您没有发布任何内容,代码会造成内存泄漏.

NSDate *today = [NSDate date]; //Autorelease
NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease]; //Autorelease

[df setDateFormat:@"yyyy-MM-dd"]; // 2017-09-28
dateString = [[df stringFromDate:today] retain];

[df setDateFormat:@"EEEE       MMM dd yyyy"];  // Thursday Sep 28 2017
[dateButton setTitle:[df stringFromDate:today] forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅Apple的文档.


Nit*_*hin 6

使用

NSDate *today = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];
dateString = [df stringFromDate:today];
[df release]
Run Code Online (Sandbox Code Playgroud)


elp*_*elp 6

使用你的代码......

NSDate *today = [[NSDate alloc]init]; 
NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"yyyy-MM-dd"]; 
dateString = nil; 
dateString = [[NSString alloc]initWithString:[df stringFromDate:today]];
Run Code Online (Sandbox Code Playgroud)

...你需要释放很多obj因为没有自动释放.

[today release];  -> alloc
[df release]      -> alloc
[dateString release]; -> alloc
Run Code Online (Sandbox Code Playgroud)

或者改为:

NSDate *today = [NSDate date];
NSDateFormatter *df = [NSDateFormatter initWithDateFormat:@"yyyy-MM-dd"];
dateString = [df stringFromDate:today];
Run Code Online (Sandbox Code Playgroud)

没有人发布/分配!