Работа над приложением, которое интенсивно использует структуру адресной книги. Существует несколько контроллеров представления, которые взаимодействуют с данными адресной книги, и все они работают просто отлично. За исключением одного, и это убивает меня.
У меня есть класс, который оборачивает доступ к адресной книге, в методе, таком как:
- (NSDictionary*)labelsToValues:(ABPropertyID)propertyID {
ABAddressBookRef addressBook = ABAddressBookCreate();
ABRecordRef aRecord = ABAddressBookGetPersonWithRecordID(addressBook, [self recordIdFromAddressBookId]);
NSMutableDictionary *entries = [NSMutableDictionary dictionary];
ABMultiValueRef multiValueProperty = ABRecordCopyValue(aRecord, propertyID);
// do some other stuff
А потом я называю это в таких местах:
- (NSDictionary*)emailProperties {
return [self labelsToValues:kABPersonEmailProperty];
}
И это работает! Конечно, я отправляю сообщение с аргументом, который является константой из структуры адресной книги. Так должно работать всегда!
Но это не тот случай. Этот конкретный emailProperties: сообщение это то, что я звоню в нескольких местах ... и иногда это работает, но иногда это не так. Когда все идет не так, я ставлю это через отладчик и получаю что-то вроде этого:
Как это возможно !? Даже странно, если я как бы «заправляю» проблемный View Controller, просматривая другие View Controller, где все ведет себя как положено, а затем я возвращаюсь к проблемному View Controller, все работает нормально. Итак, я предполагаю, что это какая-то ошибка компоновки, но я не уверен, как начать с устранения этой проблемы.