Как мне написать подкласс UIDocument для файла PNG? - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть подкласс UIDocument, который я хотел бы проверить код. Вот. Я сделал это правильно? Я думаю, что сделал, но я сталкиваюсь с проблемами. Я думаю, что этот код должен работать, пока я сохраняю файл в URL с расширением png.

UIDocument подкласс:

class ImageDocument: UIDocument {

    var image: UIImage? = nil

    override func load(fromContents contents: Any, ofType typeName: String?) throws {

        guard let data = contents as? Data else {

            throw DataFileError.fileReadFailed

        }

        image = UIImage(data: data)

    }

    override func contents(forType typeName: String) throws -> Any {

        guard image != nil else {

            throw DataFileError.badData

        }

        return image!.pngData() as Any

    }

}

Код для сохранения подкласса UIDocument:

saveToURL.appendPathExtension("png")

let document = ImageDocument(fileURL: saveToURL)

document.image = image // UIImage object

document.save(to: document.fileURL, for: .forCreating) {

    (success: Bool) in

    print("document.save success - ", success)

    print("document.fileURL=", document.fileURL)

}
...