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等类的内存管理[重复]的主要内容,如果未能解决你的问题,请参考以下文章
OC07 -- 迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转换.(杂)
使用 NSPredicate 来判断 NSSet 是不是包含来自另一个 NSSet 的对象 [重复]
C#对文件/目录的操作:PathFileDirectoryFileStreamStreamWriterStreamReader等类的浅析