2009-12-08 34 views
0

虽然对基础类的内存管理是一致的并且有文档记录,但我惊奇地发现(通过友好的EXC_BAD_ACCESS)基础函数(例如NSStringFromSelector())似乎返回指向恒定存储的指针 - 至少在函数的文档中没有提及。关于基础函数的内存管理指南

行为是否记录在某处?有没有一致的指导方针?

回答

5

规则实际上与Objective-C方法的规则相同 - 如these docs for the core foundation functions所示。

因此,在你的榜样,因为话allocnewcreatecopy中不存在,你回来的对象是不是您所拥有的(它要么具有静态存储或将被自动释放)。

+0

我读了它,并以某种方式已经设法再次忘记 - 谢谢。 – 2009-12-08 13:14:26

+1

你显然没有“保留”它;-) – philsquared 2009-12-08 13:40:13

+1

Cocoa拥有自己的内存管理文档(http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/)。规则略有不同; CF没有autorelease,而Cocoa在CF使用'Create'的地方使用'new'。 – 2009-12-08 20:10:00