Как правильно обрабатывать объекты 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 не может быть выпущен в функции. Это потому, что если я хочу добавить или удалить