Обнуляемый метод в Objective- C - PullRequest
0 голосов
/ 29 апреля 2020

Если у меня есть метод:

- (NSString*)convertName;

А потом я делаю что-то вроде:

- (NSString*)convertName {
    if (![myName isEqualToString:@"someString"]) {
        return NULL;
    }
    .......
}

Почему компилятор позволяет мне делать это, если я не указал _Nullable?

1 Ответ

0 голосов
/ 29 апреля 2020

В Objective- C, если ваши методы:

  • Не объявлено в NS_ASSUME_NONNULL_BEGIN / NS_ASSUME_NONNULL_END блоке
  • Не объявлено явно с _Nullable / _Nonnull параметрами / типами возврата

, то компилятор не будет принудительно устанавливать необязательность. В этом случае подразумевается необязательность (которая противоположна Swift, где необязательность должна быть явно указана), но небезопасно .

Вы можете увидеть это, если представлен ваш метод выше в Swift - это будет показано как объявлено так:

func convertName() -> String!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...