Cómo guardar objetos personalizados que implementan Codificable

Ahora es más fácil con Swift 4 codificar / decodificar hacia y desdeJSON o lista de propiedades.

Pero no puedo encontrar cómo codificar a datos usando Codificable, sin usar métodos Objective-CinitWithCoder yencodeWithCoder.

Considerando esta clase simple:

struct Question: Codable {
    var title: String
    var answer: Int
    var question: Int
}

¿Cómo puedo codificarlo a datos usandoCodingKeys y noinitWithCoder yencodeWithCoder?

EDITAR: También necesito poder deserializar objetos previamente guardados en los valores predeterminados del usuario usando NSKeyedArchiver.

Respuestas a la pregunta(3)

Su respuesta a la pregunta