【发布时间】:2013-03-10 17:58:48
【问题描述】:
这些是类,它们声明了指针……指向对象,对吗?你像对象一样向他们发送方法。
NSNumber * myNumber = [NSNumber numberWithInteger: x];
那么为什么它们没有像这样发布:
[myNumber release];
谢谢!
【问题讨论】:
标签: objective-c memory-management nsnumber nsautoreleasepool nsset
这些是类,它们声明了指针……指向对象,对吗?你像对象一样向他们发送方法。
NSNumber * myNumber = [NSNumber numberWithInteger: x];
那么为什么它们没有像这样发布:
[myNumber release];
谢谢!
【问题讨论】:
标签: objective-c memory-management nsnumber nsautoreleasepool nsset
按照惯例,像您展示的类方法初始化器会创建自动释放的实例,因此您不需要调用release,除非您以某种方式retain 它们。但是,实例方法初始化程序(例如您的情况下的 initWithInteger:)返回保留的实例。那些你需要释放自己的人。
【讨论】:
关于内存管理“NARC”,你应该记住一条规则:当你使用 New Alloc Retain Copy 时,你应该释放或自动释放对象,否则你不应该。
【讨论】: