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
。
我的应用程序在释放从结果为空的地址簿中提取的值时崩溃
是否可以仅在值不为空时释放,还是必须始终释放?
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
。