Как правильно обрабатывать объекты CF, созданные в начале программы и удаленные в конце

я кладу

Я объявил@property (nonatomic) ABAddressBookRef addressBook; как свойство расширения класса

-(void)dealloc
{
    [[NSNotificationCenter defaultCenter]removeObserver:self];

    CFRelease(self.addressBook);
}

Затем в функцию, вызванную ТОЛЬКО viewDidLoad, я добавляю: - (void) vCreateAddressBookAndPopulateContact

{
    self.addressBook = ABAddressBookCreate(); //will be released at dealloc
    [self vPopulateContact];
}

Это дает мне предупреждение: при распределении:

Object leaked: allocated object is not referenced later in this execution path and has a retain count of +1

При освобождении:

Incorrect decrement of the reference count of an object that is not owned at this point by the caller

И что же мне делать? Как сказать тому компилятору, что объект будет разыменовываться последним в dealloc?

Я хотел бы переместить этот ABAddressBookRef на землю ARC / NS. Но нет способа сделать это.

self.addressBook не может быть выпущен в функции. Это потому, что если я хочу добавить или удалить

Ответы на вопрос(1)

Ваш ответ на вопрос