首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSDateComponents/NSCalendar泄漏

NSDateComponents/NSCalendar泄漏
EN

Stack Overflow用户
提问于 2011-03-12 21:58:38
回答 1查看 780关注 0票数 2

如果我使用XCode 4工具分析我的程序,下面这行代码会导致“潜在泄漏的对象分配在127行”。

代码语言:javascript
复制
NSDateComponents *weekdayComponents = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] components:NSWeekdayCalendarUnit fromDate:[[NSDate date] dateByAddingTimeInterval:(60*60*24)]];

如果我试图释放它([weekdayComponents release];),就会出现一条警告消息:“调用者此时未拥有的对象的引用计数递减不正确”。有什么想法吗?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-12 22:05:05

代码中的问题是您不能坚持使用NSCalendar对象,因此不能再释放它。

换句话说,您正在泄漏NSCalendar对象。如果您坚持在一条语句中包含所有内容,则应将其更改为:

代码语言:javascript
复制
NSDateComponents *weekdayComponents = 
    [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]                 
    components:NSWeekdayCalendarUnit 
    fromDate:[[NSDate date] dateByAddingTimeInterval:(60*60*24)]
    ];

更好的做法是将语句拆分:

代码语言:javascript
复制
NSCalendar *calendar = 
    [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDateComponents *weekdayComponents =
    [calendar  
         components:NSWeekdayCalendarUnit 
           fromDate:[[NSDate date] dateByAddingTimeInterval:(60*60*24)]
    ];

[calendar release];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5282934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档