mon*_*eta 3 iphone objective-c autorelease
我有这个简单的代码返回今天的日期作为字符串格式:
+(NSString*) getTodayString_YYYY_MM_DD {
NSDate * today = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];
return [[formatter stringFromDate:today] autorelease];
}
Run Code Online (Sandbox Code Playgroud)
使用乐器我没有内存泄漏,但是当我分析时,XCode说:
Object sent -autorelease too many times
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,我必须手动释放格式化程序,因为我正在使用'alloc'创建它,但我不能在这里发布因为我必须返回值,所以我添加自动释放.
我怎样才能更好地改进呢?
谢谢,
河
你是-autoReleasing NSString,而不是格式化程序.
你不需要autoRelease,因为-stringFromDate:给你一个已经自动释放的字符串.
这是代码的一种方式:
+(NSString*) getTodayString_YYYY_MM_DD {
NSDate * today = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];
NSString *retString = [formatter stringFromDate:today];
[formatter release];
return retString;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4853 次 |
| 最近记录: |