В примере с Apple я видел это:
myController *controller = [viewControllers objectAtIndex:page];
if ((NSNull *)controller == [NSNull null]) {
controller = [[myController alloc] initWithPageNumber:page];
[viewControllers replaceObjectAtIndex:page withObject:controller];
[controller release];
}
Мне очень интересна эта строка:
if ((NSNull *)controller == [NSNull null]) {
Если бы я сделал это, я бы просто проверил на ноль. Почему они делают это так чертовски сложно? И что это на самом деле делает? Для меня это выглядит так, будто они приводят объект контроллера к NSNull, а затем проверяют, совпадает ли это с null от NSNull.
A.F.A.I.K. ноль означает «нет объекта», а ноль означает «ничего». Пожалуйста, помогите мне получить четкое изображение здесь!