Наш код вызывает stringWithUTF8String
, но некоторые данные, которые у нас есть, используют последовательность octal
\ 340 в строке.Это приводит к сбою некоторого кода, потому что мы никогда не ожидаем, что функция вернет nil
.Я провел некоторое исследование и обнаружил, что любая восьмеричная последовательность из \ 200- \ 777 даст тот же результат.Я знаю, что могу справиться с этим возвращением nil
, но я хочу понять, почему он вернет nil
, и как эти восьмеричные экранированные символы интерпретируются как.,Похоже, что для защиты кода нам придется проверять нулевые результаты для этого везде, где мы его используем, что кажется неудачным.В документации по функции ничего не сказано о возврате nil как возможного.Могу поспорить, что существует много кода, который тоже не проверяет его.