Понимание метода, возвращающего BOOL с помощью! = - PullRequest
4 голосов
/ 15 мая 2011

Это довольно простой вопрос относительно синтаксиса оператора return в методе shouldAutoRotateToInterfaceOrientation контроллера представления.

Чтобы разрешить все виды, кроме перевернутого портретного режима, я реализовал следующий фрагмент кода:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

Что именно делает оператор return? Я понимаю, что она возвращает логическую переменную, но как она определяет, следует ли возвращать true или false? Является ли это своего рода неявным оператором if внутри оператора return? То есть будет:

-    (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    if (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown)
        return YES;
}

технически одно и то же, просто более четко заявлено?

Спасибо за разъяснения!

1 Ответ

8 голосов
/ 15 мая 2011

Результат сравнения, подобный (something != something_else), представляет собой значение BOOL. Если сравнение верно, выражение (....) принимает значение YES (что совпадает с TRUE).

Это не неявное преобразование, это просто способ сравнения.

...