IOS/xcode/Core基金会:如果一个值是空的,你必须释放它吗?

IOS/xcode/Core Foundation: If a value is null do you have to release it?

我的应用程序在释放从结果为空的地址簿中提取的值时崩溃

是否可以仅在值不为空时释放,还是必须始终释放?

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


if(firstName!=NULL) {

    CFRelease(firstName);

}

核心基础的新手,感谢指导。

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

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

所以是的,如果您不再需要 firstName 不为 NULL,您应该只调用 CFRelease