archiveRootObject(_to:file:) устарел, не знаете, как реализовать новое кодирование

Я пытаюсь сохранить данные с помощью NSCoding, но мне говорят, что команда, которую я пытаюсь использовать, устарела в iOS 12, и я теряюсь, пытаясь понять, как реализовать кодирование, которое Xcode рекомендует использовать. Я уверен, что вопрос был задан и получен ответ, но я теряюсь, пытаясь найти ответ. Буду признателен за помощь.

кодирование:

func encode(with aCoder: NSCoder) {
    aCoder.encode(name, forKey: PropertyKey.characterName)
    aCoder.encode(race, forKey: PropertyKey.characterRace)
    aCoder.encode(cclass, forKey: PropertyKey.characterClass)
    aCoder.encode(background, forKey: PropertyKey.characterBackground)
    aCoder.encode(photo, forKey: PropertyKey.characterPhoto)
}

required convenience init?(coder aDecoder: NSCoder) {
    guard let name = aDecoder.decodeObject(forKey: PropertyKey.characterName) as? String else {
        os_log("Unable to decode the name for a character object.", log: OSLog.default, type: .debug)
        return nil
    }
    let race = aDecoder.decodeObject(forKey: PropertyKey.characterRace) as? String
    let cclass = aDecoder.decodeObject(forKey: PropertyKey.characterClass) as? String
    let background = aDecoder.decodeObject(forKey: PropertyKey.characterBackground) as? String
    let photo = aDecoder.decodeObject(forKey: PropertyKey.characterPhoto) as? UIImage

    self.init(name: name, race: race ?? "", cclass: cclass ?? "", background: background ?? "", photo: photo)
}

сохранить кодировку:

private func saveCharacters() {

    let isSuccessfulSave = NSKeyedArchiver.archiveRootObject(characterList, toFile: Character.ArchiveURL.path)
    if isSuccessfulSave {
        os_log("Characters successfully saved", log: OSLog.default, type: .debug)
    } else {
        os_log("Failed to save Characters", log: OSLog.default, type: .error)
    }
}

Xcode предлагает использовать +archivedDataWithRootObject:requiredSecureCoding:error: но я не могу решить, как это реализовать.

0 ответов

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