ABPersonRemoveImageData即使在发布时也会泄漏?

时间:2011-01-25 09:14:18

标签: iphone memory-leaks

您好我正在使用此代码设置联系人图片。 我在仪器中泄漏,它指向“ABPersonSetImageData(ref,cfdata,& error);”线。 我没有看到问题,我很乐意在这里得到一些帮助。

感谢

SHANI

    if(person.state!=0){
        //set default image;
        NSString *n=[NSString stringWithFormat:@"%@%@", person.category_en,@"_B"];
        UIImage *img = [UIImage imageNamed:n];


        NSData *dataRef = UIImagePNGRepresentation(img); 
        CFDataRef cfdata = CFDataCreate(NULL, [dataRef bytes], [dataRef length]);


        ABPersonRemoveImageData(ref, &error); 
        ABAddressBookSave(addressBook, &error);
        ABPersonSetImageData(ref, cfdata, &error);

        CFRelease(cfdata);

        //set default category name;
        ABRecordSetValue(ref, kABPersonJobTitleProperty, NSLocalizedString(person.category,@""), &error);
        //set notes to person
        ABRecordSetValue(ref, kABPersonNoteProperty,person.note, &error);
    }

1 个答案:

答案 0 :(得分:1)

似乎是iOS SDK 4.2的错误。我在iOS SDK 4.2之前从未遇到过这个问题。但是这些工具向我展示了iOS SDK 4.2最终版本中关于 ABPersonSetImageData()的泄漏。所以,也许下一个iOS SDK 4.3将解决这个问题。