gpt4 book ai didi

ios - ABPersonCopyImageDataWithFormat 到 CFDataRef 导致内存增长/大内存占用

转载 作者:行者123 更新时间:2023-11-29 12:27:46 25 4
gpt4 key购买 nike

CFData 在我复制 2000 个联系人的联系人图像(所有联系人都有联系人图像)时不断增长,即使我在处理数据后使用 CFRelease。我一次访问一个联系人以避免占用大量内存。代码如下:

- (void) getImageData:(ABRecordRef) contactPerson {
//Retrieving the contact photo
//base64 conversion from NSData to NSMutableString for the thumbnail image
@autoreleasepool {
if (ABPersonHasImageData(contactPerson)) {
//NSMutableData *contactImageData = [[NSMutableData alloc] init];
//NSMutableData *contactImageData = (CFBridgingRelease (ABPersonCopyImageDataWithFormat(contactPerson, kABPersonImageFormatThumbnail)));
CFDataRef contactImageData = ABPersonCopyImageDataWithFormat(contactPerson, kABPersonImageFormatThumbnail);

if (contactImageData) {

NSMutableString *imgData = [[NSMutableString alloc] init];
[imgData setString:[(__bridge NSData *)contactImageData base64EncodedStringWithOptions:0 ]];
currPhoneDBItem.photoBitmap = imgData;

imgData = nil;
//contactImageData = nil;
CFRelease(contactImageData);

}else{
NSLog(@"bitmap empty:");
currPhoneDBItem.photoBitmap = @"";
//CFRelease(contactImageData);
}

} else {
NSLog(@"bitmap empty:");
currPhoneDBItem.photoBitmap = @"";
}
}
}

CurrPhoneDBItem 是文件中的全局对象。我仍在尝试找出解决此问题的方法。无法发布 Instruments 配置文件的屏幕截图,因为我没有所需的声誉。但是 CFData 最终使用了 23MB。任何帮助将不胜感激!!!

最佳答案

好久不见了。这个问题是由于引用被保留引起的。

关于ios - ABPersonCopyImageDataWithFormat 到 CFDataRef 导致内存增长/大内存占用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28579232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com