Apple 的 Resource Programming Guide 里有一段说:
Managing Nib Objects in iOS
Top-Level Objects
Objects in the nib file are created with a retain count of 1 and then autoreleased.
实际上如果是 main nib 里的 top-level objects,是不会被 autorelease 的。这样如果你有一些只在启动时用到的 object 放在 main nib 里实例化,之后想释放掉时只 release 一次的话就 leak 了。除非违反内存管理的规范,对没有 ownership 的对象再 release 一次。
很奇怪这点没有在文档里提及,不过 Xcode 4.2 以后的 project templates 貌似不提供 main nib 了?
Managing Nib Objects in iOS
Top-Level Objects
Objects in the nib file are created with a retain count of 1 and then autoreleased.
实际上如果是 main nib 里的 top-level objects,是不会被 autorelease 的。这样如果你有一些只在启动时用到的 object 放在 main nib 里实例化,之后想释放掉时只 release 一次的话就 leak 了。除非违反内存管理的规范,对没有 ownership 的对象再 release 一次。
很奇怪这点没有在文档里提及,不过 Xcode 4.2 以后的 project templates 貌似不提供 main nib 了?