Как преобразовать пользовательский объект в Data Swift - PullRequest
0 голосов
/ 06 июля 2018

У меня есть собственная структура, которая имеет свойства типов, которые являются другими структурами с некодируемыми типами. Это сложное дерево структур внутри структур, и мне нужно преобразовать его в данные, чтобы я мог сохранить его.

Мне нужно сохранить эту структуру (чат)

struct Chat{
    var dictOfRecentMessages:[String:Message] = [:]
    var matchPicture:UIImage? 
    var metadata:JSON?
}

    struct Message{
        let messageID:String
        var chatID:String
        let whoSent:String
        let timeTriedToSend:Int


        var messageString:String?
        var image:ImageMessage?
        var video:VideoMessage?
        var location:LocationMessage?
        let status:String 

    }

struct ImageMessage{
    var uiImage:UIImage?
    var imageURL:String?
    var imageSize:CGSize?
}
struct VideoMessage{
    var video:NSURL?
    var videoURL:String?
}
struct LocationMessage{
    var clLocation:CLLocation?
    var mapCamera:MKMapCamera?
    var mapSnapshot:MKMapSnapshot?
}

Является ли сериализация лучшим способом, как в этом посте? Свифт переходит на NSData и обратно

Я пытался соответствовать Codable, но он выдает ошибку, говоря, что он не соответствует, что ожидается из-за типов.

...