gpt4 book ai didi

iphone - 将 CFRelease 用于 ABRecordCopyValue 时内存仍在增加?

转载 作者:太空狗 更新时间:2023-10-30 03:52:24 24 4
gpt4 key购买 nike

我有一个问题很头疼,我只是创建方法:

-(void) main{

for (int i = 0; i< 100;i++) {
[self getPhoneOfContact:i];
}
}

-(void)getPhoneOfContact:(NSInteger)id_contact {

ABRecordRef record = ABAddressBookGetPersonWithRecordID(addressBook,id_contact);

CFTypeRef ref1;
ref1 = ABRecordCopyValue(record,kABPersonPhoneProperty);

CFRelease(record);
CFRelease(ref1);
}

我认为内存将近似于常量,因为我已经复制了释放内存,但实际上它仍然在每个循环 i 中增加;谁能给我解释一下 :(。谢谢!

最佳答案

您的代码有误。 ABAddressBookGetPersonWithRecordID 调用遵循核心基础“获取规则”。这意味着您没有返回值的所有权,因此您不必释放它。

参见 Core Foundation - Memory Management

关于iphone - 将 CFRelease 用于 ABRecordCopyValue 时内存仍在增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2099075/

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