Какой объект здесь ноль? - PullRequest
1 голос
/ 21 июня 2011

В следующем коде мне любопытно узнать, какой объект устанавливается равным nil в методе:

- (void) ViewWillAppear: (BOOL).Это самоубийство?или все объекты в

- (IBAction) showCurrentTime: (id) метод отправителя равны нулю, или оба равны нулю?

-(IBAction)showCurrentTime:(id)sender
{
    NSDate *now = [NSDate date];
    static NSDateFormatter *formatter = nil;
    if (!formatter) {
        formatter = [[ NSDateFormatter alloc ] init ];
        [formatter setTimeStyle:NSDateFormatterShortStyle];

    }
    [timeLabel setText:[formatter stringFromDate:now]];

}
-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    [self showCurrentTime:nil];


}

Ответы [ 2 ]

2 голосов
/ 21 июня 2011

Если вы ссылаетесь на строку [self showCurrentTime:nil];, то она просто отправляет nil, потому что для метода требуется параметр sender.Если нет случаев, когда вам нужен отправитель (даже если вы используете метод из Интерфейсного Разработчика), тогда можно удалить часть «: (id) sender» из имени метода.

2 голосов
/ 21 июня 2011

Я не вижу ничего установленного на nil. Если вы ссылаетесь на параметр sender, то происходит nil, который PASSED является объектом отправителя Это не присвоение какой-либо переменной nil. В вашем примере отправитель никогда не используется, поэтому nil не имеет никакого эффекта.

Однако, если бы этот параметр был использован, вы бы получили стандартное поведение при передаче сообщений на ноль. То есть, если вызов void, ничего не происходит, если он возвращает объект, возвращается nil и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...