Две части по этому вопросуЯвляется ли (obj && obj! = Nil) правильным и необходимым?
1) Это понимание того, что происходит правильно?
«if (obj)» проверяет, не указана ли указатель 0x0, ака, установленная на целочисленный адрес памяти
«if (obj! = Nil)» сравнивает адрес памяти объекта с адресом памяти универсальный нулевой объект
2) Итак, в ситуации, когда я не знаю, указывает ли какая-либо переменная на что-либо, и если это так, я также не знаю, является ли этот объект допустимым объектом или нулем. Я хочу делать множество вещей на основе этой информации, а не просто передавать сообщение obj, которое, как я понимаю, будет безопасным, если оно будет нулевым. Является ли этот код правильным и необходимым?
if (obj && obj != nil) {
// Do a bunch of things that should only happen if obj is pointing to a valid object
[obj someMessage];
[anotherObj someOtherMessage];
}
Спасибо, ребята!
Как вы 'typedef' значение? ;) –
Упс. Исправлена. Спасибо, Павел. –
Некоторые другие ответы кажутся правильными, но я думаю, что этот человек лучше всего объясняет, что происходит. – DougW