У меня есть значение, которое приходит с сервера, оно сохраняется в переменную NSString
(иногда сервер возвращает его в виде строки, иногда в виде логического значения).
Предположим, что эта часть кода не может быть изменена.
Проблема возникла, когда я переписал часть Objc на swift 4
Код, который у меня есть в Objc:
[data.isActive boolValue]
В swift 4 происходит сбой, поскольку в String нет записи .boolValue
, вы можете преобразовать String в bool только с использованием синтаксиса Bool()
. А так как значение не является реальной строкой, вызов Bool()
разрешится в аварийных ситуациях из-за CFBoolean unrecognized selector
, поскольку оно было принудительно перенесено из String.
Есть ли способ преодолеть это, не прибегая к Objc-коду, который обернул бы эти преобразования?
Пожалуйста, проверьте этот тестовый проект на GitHub
Не удается даже присвоить значение этого типа любому быстрому объекту.