Взломать карту модуля, чтобы выставить fileprivate конструкции?

Я реализую свой собственный JSON-кодер / декодер, как у Swift Encoder & Decoder протоколы.

Дело в том, что я хочу переопределить только небольшое подмножество функций, уже предоставленных JSONEncoder в основании. JSONEncoderвопреки своему названию не является настоящим Свифтом Encoder, Вместо этого он оборачивает класс fileprivate _JSONEncoder, который реализует все необходимое Encoder функции.

Чтобы написать свой собственный кодировщик, я мог бы:

  • Напишите мой собственный кодер JSON с нуля.
  • Скопируйте и вставьте и измените _JSONEncoder из самого источника.

Ни один не является особенно привлекательным решением. Написание собственного кодировщика - трудная и сложная задача, и я не сомневаюсь, что она будет изобиловать ошибками. Прописи склеивание _JSONEncoderс другой стороны, вынуждает меня неуклюже проверять и исправлять порты каждый раз, когда происходит обновление исходного исходного файла.

Я бы предпочел просто иметь _JSONEncoder разоблачить и обернуть Encoderсвязанных функций при внедрении моего собственного кода по мере необходимости.

0 ответов

Другие вопросы по тегам