我的应用在发布从地址簿中提取的值为空的
时崩溃了如果值不为null或者您是否总是必须释放,是否可以释放?
CFStringRef firstName = ABRecordCopyValue(lRef,kABPersonFirstNameProperty);
// CFRelease(firstName);// this was causing crash
if(firstName!=NULL) {
CFRelease(firstName);
}
Newb to core foundation所以感谢指导。
答案 0 :(得分:0)
如果参数为NULL,CFRelease
将导致运行时错误,您的应用程序将崩溃。
如果CFTypeRef
个对象的保留计数变为零,则分配给该对象的内存将被释放,并且该对象将被销毁。如果您创建,复制或显式保留(参见CFRetain函数)Core Foundation对象,则您有责任在不再需要它时将其释放。
所以是的,如果CFRelease
不再为NULL时,你应该只调用firstName
。