在 Objective-C 中,我们应该保留还是释放类型的变量Class
?AClass
是指向 C 结构的指针。
问问题
653 次
2 回答
11
Class
声明为指向 a的事实是struct
您应该尝试忽略的实现细节。您应该将其视为引用表示 Objective-C 类的 Objective-C 对象的不透明类型。
Objective-C 中的这些Class
对象永远不会被释放。一旦创建,它们就会一直存在,直到进程退出。因此,即使它们是真正的 Objective-C 对象,您也不需要保留和释放它们。
至于当你发送retain
或发送release
到一个Class
对象时具体发生了什么:什么都没有。每个类对象的保留计数都具有特殊值 -1。当默认实现看到保留计数为 -1 时retain
,release
它们什么也不做。
于 2013-07-04T19:36:24.100 回答
4
AC struct 不是Objective C 对象,您不能“保留”或“释放”一个结构,除非它是您保留和释放的Objective C 对象的成员(例如ivar)。
当然,您需要为结构分配空间,无论是在堆栈上还是通过“ malloc
”(完成后不要忘记“ free
”)。
于 2013-07-04T17:14:45.477 回答