Это действительно меня озадачивает. У меня есть словарь, где я отслеживаю количество ошибок и предупреждений. Ну в блоке if (...)
, также на фото, я тестирую 0 ошибок, и по какой-то причине каждая комбинация кода, который я пробовал, говорит, что количество ошибок> 0 истинно.Неожиданный результат в выражении if
Вот некоторые результаты из консоли LLDB ...
(lldb) ро violationCounts [@ "ошибки"]
(lldb) ро [violationCounts [@ "ошибки "] класс]
__NSCFNumber
(lldb) р violationCounts [@" ошибки "]> 0 (BOOL)
$ 2 = истинный
(lldb) р ((ИНТ) violationCounts [@ "ошибки"])> 0 (BOOL)
$ 3 = верно
Почему это оценивается до errorsCounts is> 0
Прочитайте документацию для 'NSNumber', и вы обнаружите свою проблему. HTH – CRD
Dooohhh ... the (int) рядом с номером бросил меня полностью из wack. Даже не заметил NSCFNumber влево или даже результат [class]. Мне действительно нужно немного поспать. –