These are classes and they declares pointers... to objects right? You send methods to them like objects. NSNumber * myNumber = [NSNumber numberWithInteger: x];

So why are they not released like so: [myNumber release];

Thanks!

有帮助吗?

解决方案

By convention, class method initializers like the one you've shown create autoreleased instances, so you don't need to call release unless you retain them somehow. However, the instance method initializers - like initWithInteger: in your case - return retained instances. Those you would need to release yourself.

其他提示

There is a rule you should remember about memory management "NARC": When you use New Alloc Retain Copy you should release or autorelease object, otherwise you shouldn't.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top