jjzjj

CFRelease

全部标签

ios - 从可变数组中删除一系列对象时 CFRelease 崩溃

我们的一位测试人员报告了以下崩溃:0APP_NAME_WAS_HERE0x00074892testflight_backtrace+1581APP_NAME_WAS_HERE0x000754bcTFSignalHandler+2442libsystem_c.dylib0x378ea7ec_sigtramp+483CoreFoundation0x30ef42e6CFRelease+944CoreFoundation0x30f09a36-[__NSArrayMremoveObjectAtIndex:]+2945CoreFoundation0x30f4a65e-[NSMutableArray

ios - 调用 CFRelease(ABAddressBookRef ref) 时崩溃

这是我的代码,运行最后一行CFRelease(addressBook),程序崩溃!帮帮我~!ABAddressBookRefaddressBook=ABAddressBookCreateWithOptions(NULL,NULL);NSMutableArray*groups=[NSMutableArrayarrayWithCapacity:ABAddressBookGetGroupCount(addressBook)];NSMutableArray*people=[NSMutableArrayarrayWithCapacity:ABAddressBookGetGroupCount(ad

ios - CFRelease(CFArrayRef) 时崩溃

我有清除设备中地址簿的方法。方法如下。-(void)clearAdressBook{ABAddressBookRefaddrBook=ABAddressBookCreate();CFArrayRefgroups=ABAddressBookCopyArrayOfAllGroups(addrBook);if(groups){CFIndexnumGroups=CFArrayGetCount(groups);for(CFIndexidx=0;idx当我发布CFArrayRef应用程序崩溃时,这里出了什么问题?据我所知,我必须释放所有从名称包含复制或创建权限的CF方法返回的对象?

ios - CFRelease 与 CGPathRelease

以下是来自Omniframeworks的代码片段:CGMutablePathRefpath=CGPathCreateMutable();CGPathAddRect(path,NULL/*transform*/,rect);self->_path=CGPathCreateCopy(path);CFRelease(path);为什么这里用的是CFRelease而不是CGPathRelease?它们是否相同?如果是,为什么后者存在? 最佳答案 来自documentationforCGPathRelease:Thisfunctioniseq

iphone - 如果我从 (__bridge) 使用 CGImageSourceCreateWithData,是否需要 "CFRelease"?

我的问题很简单,我想知道"CGImageSourceCreateWithData"方法是否创建了一个复制我提供的数据的新对象,以便我在不需要时必须释放它不再使用它,或者如果它只是创建对我已经拥有的数据的引用,那么如果我释放它,我将丢失这些数据(并且可能出现错误的访问错误)。此问题与使用(__bridgeCFDataRef)作为源数据有关。这让我可以在ARC模式下免费使用CoreFoundation对象。考虑以下函数(或方法,不确定它是如何调用的):-(void)saveImageWithData:(NSData*)jpegandDictionary:(NSDictionary*)dic

objective-c - 使用 CFRelease 释放的对象会导致明显的崩溃,但这种情况很少见

我有以下方法:+(NSString*)getMD5HashFromFile:(NSString*)filePath{CFStringRefmd5hash=FileMD5HashCreateWithPath((CFStringRef)filePath,FileHashDefaultChunkSizeForReadingData);NSString*hashStr=(NSString*)md5hash;CFRelease(md5hash);returnhashStr;}我在模拟器上遇到了随机崩溃,大约20-30次执行中有1次崩溃。这不一致的事实并没有帮助我之前进行更深入的挖掘。现在我再次看

iphone - CMSampleBufferRef 上的 CFRelease - 为什么我需要调用它?

CMSampleBufferRefsampleBuffer=[assetOutputcopyNextSampleBuffer];CMBlockBufferRefbuffer=CMSampleBufferGetDataBuffer(sampleBuffer);CMBlockBufferAppendBufferReference(_sem==0?_buffer0:_buffer1,buffer,0,0,0);//if(sampleBuffer)//CFRelease(sampleBuffer);为什么这会在第一行导致内存泄漏(至少Leaks是这么建议的)?我有我的assetOutput.s

ios - CFRelease(addressBook) 使我的 iOS 应用程序崩溃

-(void)tableView:(UITableView*)tableViewaccessoryButtonTappedForRowWithIndexPath:(NSIndexPath*)indexPath{NSUIntegerrow=indexPath.row;if(row==NSNotFound)return;if(call.uid!=kABRecordInvalidID){ABAddressBookRefaddressBook=ABAddressBookCreate();ABRecordRefperson=ABAddressBookGetPersonWithRecordID(a

objective-c - ARC 和 CFRelease?

我有点困惑。我读过的所有地方都建议在使用ARC时,你仍然需要释放核心基础对象,这是有道理的,ARC不管理它们。但是,我有一个方法使用了一些CF方法/对象,我在这些方法/对象上使用了CFRelease,但随后导致应用程序崩溃。取消注释我的CFRelease解决了这个问题,但我假设我有内存泄漏?有人可以解释一下哪些东西需要发布,哪些不需要,或者这段代码还有什么问题吗?+(NSString*)fileExtensionForMimeType:(NSString*)type{CFStringRefmimeType=(__bridgeCFStringRef)type;CFStringRefuti
12