Как использовать сохраняющий и извлекающий объект, совместимый с NSCoding, в каталог документов приложения в Swift 3?

Вот объект, совместимый с NSCoding. Я хотел бы сохранить и восстановить его из каталога документов приложения в Swift 3. Я предполагаю, что это метод сохранения и метод восстановления. Как это сделать?

import Foundation

class Book: NSObject, NSCoding {
    var title: String
    var author: String
    var pageCount: Int
    var categories: [String]
    var available: Bool

    init(title:String, author: String, pageCount:Int, categories:[String],available:Bool) {
        self.title = title
        self.author = author
        self.pageCount = pageCount
        self.categories = categories
        self.available = available
    }

    // MARK: NSCoding
    required convenience init?(coder: NSCoder) {

        let title = coder.decodeObject(forKey: "title") as! String
        let author = coder.decodeObject(forKey: "author")as! String
        let categories = coder.decodeObject(forKey: "categories") as! [String]
        let available = coder.decodeBool(forKey: "available")
        let pageCount = coder.decodeInteger(forKey: "pageCount")

        self.init(title:title, author:author,pageCount:pageCount,categories: categories,available:available)
    }

    func encode(with: NSCoder) {
        with.encode(self.title, forKey: "title")
        with.encode(self.author, forKey: "author")
        with.encode(Int32(self.pageCount), forKey: "pageCount")
        with.encode(self.categories, forKey: "categories")
        with.encode(self.available, forKey: "available")
    }
}

Благодарю вас!

Ответы на вопрос(2)

Ваш ответ на вопрос