Я потратил сегодня некоторое время на поиск двух ошибок и в итоге исправил их обе с помощью одного и того же решения.
Теперь, когда у меня есть решение, я надеялся получить некоторую ясность.
Я сравниваю атрибут из Core Data (Integer 16 / NSNumber) с Integer (ABPropertyID & ABMultiValueIdentifier).
Ошибка была в этом сравнении, и, как ни странно, она проявилась только после того, как я убил приложение (из фоновой панели), снова открыл его и запустил тот же процесс, который включал сравнение. В любом случае ...
Вот что перестало работать после перезапуска:
if (myNumber. aProperty == [NSNUmber numberWithInt: anInteger]) {/ * здесь что-то делать * /}
И вот два решения, которые пока работают отлично:
if ([myNumber.aProperty integerValue] == anInteger) {/ * здесь что-то делать * /}
if ([myNumber.aProperty isEqualToNumber: [NSNumber numberWithInt: anInteger]]) {/ * здесь что-то делать * /}
Для меня все они выглядят одинаково. Я всегда либо конвертирую NSNumber в integerValue, либо конвертирую целое в NSNumber.
Есть идеи?