Я хочу создать FileManager с использованием протоколов в Swift.
Это просто структура
struct AppFile: AppFileManipulation {
let fileName: String
init(fileName: String)
{
self.fileName = fileName
}
}
, которая теперь создается в коде
let file = AppFile(fileName: "testfile.txt")
Я хочу разделить разные функции на разные протоколы
Один из них дает статус файла, здесь он с файлом существует
protocol AppFileStatus
{
func exists(file at: URL) -> Bool
}
extension AppFileStatus
{
func exists(file at: URL) -> Bool
{
return FileManager.default.fileExists(atPath: at.path)
}
}
и я хочу иметь отдельный протокол, которыйимеет файловые операции
protocol AppFileManipulation : AppDirectoryNames, AppFileStatus
{
func writeStringsToFile(containing: String, to path: FileManager.SearchPathDirectory, withName name: String) -> Bool
}
extension AppFileManipulation
{
func writeStringsToFile(containing: String, to path: FileManager.SearchPathDirectory, withName name: String) -> Bool{
}
}
Теперь по разным причинам (чтобы проверить, существует ли файл на самом деле), я хочу, чтобы тело writeStringsToFile было доступно (файл по адресу: URL).
OneРешение было бы поместить все в один протокол, но на самом деле я хотел разделить функциональность. Другой вариант - повторить код.
Как мне структурировать это так, чтобы я мог получить доступ к методам AppFileStatus из протокола AppFileManipulation?
Вот пример проекта;https://github.com/stevencurtis/ProtocolFileHandling