NSNumber,NSSet等类的内存管理[重复]

Posted

技术标签:

【中文标题】NSNumber,NSSet等类的内存管理[重复]【英文标题】:Memory management for classes like NSNumber, NSSet [duplicate] 【发布时间】:2013-03-10 17:58:48 【问题描述】:

这些是类,它们声明了指针……指向对象,对吗?你像对象一样向他们发送方法。 NSNumber * myNumber = [NSNumber numberWithInteger: x];

那么为什么它们没有像这样发布: [myNumber release];

谢谢!

【问题讨论】:

您可能会觉得这很有帮助:developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/… 【参考方案1】:

按照惯例,像您展示的类方法初始化器会创建自动释放的实例,因此您不需要调用release,除非您以某种方式retain 它们。但是,实例方法初始化程序(例如您的情况下的 initWithInteger:)返回保留的实例。那些你需要释放自己的人。

【讨论】:

【参考方案2】:

关于内存管理“NARC”,你应该记住一条规则:当你使用 New Alloc Retain Copy 时,你应该释放或自动释放对象,否则你不应该。

【讨论】:

以上是关于NSNumber,NSSet等类的内存管理[重复]的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发-OC篇-NSSet,NSNumber

OC07 -- 迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转换.(杂)

NSMutableSet 设置减组不工作

使用 NSPredicate 来判断 NSSet 是不是包含来自另一个 NSSet 的对象 [重复]

C#对文件/目录的操作:PathFileDirectoryFileStreamStreamWriterStreamReader等类的浅析

NSSet 和重复项,我需要重复项吗?