IOS / xcode / Core Foundation:如果值为null,您是否必须释放它?

时间:2015-06-05 00:49:18

标签: core-foundation

我的应用在发布从地址簿中提取的值为空的

时崩溃了

如果值不为null或者您是否总是必须释放,是否可以释放?

 CFStringRef firstName = ABRecordCopyValue(lRef,kABPersonFirstNameProperty);
    //    CFRelease(firstName);// this was causing crash


if(firstName!=NULL) {

    CFRelease(firstName);

}

Newb to core foundation所以感谢指导。

1 个答案:

答案 0 :(得分:0)

如果参数为NULL,CFRelease将导致运行时错误,您的应用程序将崩溃。

如果CFTypeRef个对象的保留计数变为零,则分配给该对象的内存将被释放,并且该对象将被销毁。如果您创建,复制或显式保留(参见CFRetain函数)Core Foundation对象,则您有责任在不再需要它时将其释放。

所以是的,如果CFRelease不再为NULL时,你应该只调用firstName