Нет, !spriteInfoBack
просто сравните значение с nil
(т.е.: spriteInfoBlack == nil
), которое отличается (если вам нужно убедить себя, запишите что-нибудь в часть else
). Переменная по-прежнему содержит адрес памяти и, следовательно, сбой, потому что экземпляр был освобожден.
Мы не можем понять, глядя на код, почему экземпляр освобожден, поэтому дважды проверьте код, управление памятью и / или поместите nil
в переменную, если она вам больше не нужна, таким образом, вы убедитесь, что тест не провалится.