Вы не можете сделать это. CLCircularRegion
не является final
классом. Когда вы расширяете неконечный класс, вы можете писать только convenience
инициализаторы в расширении. Decodable
указывает, что инициализатор должен быть объявлен required
.
Но мы только что увидели, что вы не можете этого сделать, потому что Swift не позволяет вам объявлять required
инициализаторы в расширении.
В целом, это не очень хорошо идея расширить чужие типы, чтобы привести их в соответствие с Codable
, потому что в будущем тот, кто написал тип, может также добавить соответствие Codable
, и очень вероятно, что их реализация не будет соответствовать вашей реализации, что вызовет некоторые ошибки это будет очень трудно диагностировать.
Как уже упоминалось, лучше всего заключить оболочку CLCircularRegion
в структуру, которая соответствует Codable
.