gpt4 book ai didi

iphone - 为什么这些方法会泄漏 NSDate 对象?

转载 作者:行者123 更新时间:2023-12-03 17:36:48 25 4
gpt4 key购买 nike

第一个:

+ (NSDate*)convertToUTC:(NSDate*)sourceDate
{
NSTimeZone* currentTimeZone = [NSTimeZone localTimeZone];
NSTimeZone* utcTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];

NSInteger currentGMTOffset = [currentTimeZone secondsFromGMTForDate:sourceDate];
NSInteger gmtOffset = [utcTimeZone secondsFromGMTForDate:sourceDate];
NSTimeInterval gmtInterval = gmtOffset - currentGMTOffset;

return [NSDate dateWithTimeInterval:gmtInterval sinceDate:sourceDate];
}

是的,我知道下一个很奇怪,但我的服务器给了我一种糟糕的日期格式

+(NSDate *)getDateFromString:(NSString *)dtStr
{
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[inputFormatter setLocale:locale];
[locale release];
[inputFormatter setDateFormat:@"MMMM, dd yyyy HH:mm:ss"];
NSDate *formatterDate = [[inputFormatter dateFromString:dtStr] copy];
[inputFormatter release];
return formatterDate;
}

最佳答案

第一个没有,但第二个有,因为您创建了一个副本并且没有自动释放它。如果以后不发布,就会泄露。

我不明白你为什么要在第二种方法中复制日期。只需将其剪掉即可修复泄漏。

你真的应该阅读(或重新阅读)the Memory Management Programming Guide for Cocoa ,因为看来您需要加深对内存管理规则的理解。

关于iphone - 为什么这些方法会泄漏 NSDate 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3376855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com