转换NSDate为NSString创建内存泄漏可以任何人帮助.
这是我的代码: -
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)
由于您没有发布任何内容,代码会造成内存泄漏.
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的文档.
使用
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)
使用你的代码......
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)
没有人发布/分配!