Сравните NSNumber с NSInteger

Я потратил сегодня некоторое время на поиск двух ошибок и в итоге исправил их обе с помощью одного и того же решения.

Теперь, когда у меня есть решение, я надеялся получить некоторую ясность.

Я сравниваю атрибут из 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.

Есть идеи?

5
задан djibouti33 24 March 2011 в 06:11
поделиться