CodableFiles 1.1.2

CodableFiles 1.1.2

Egzon Pllana 维护。



  • Egzon Pllana

“CodableFiles”

CocoaPods Carthage Swift Package Manager

欢迎来到 CodableFiles,这是一个简单的库,提供了一种更简单的保存、加载或删除在 Documents 目录中的 Codable 对象的方法。它主要旨在将 Encodable 对象保存为 json 字符串并从字符串加载为 Decodable 对象。它本质上是对 Foundation 提供的 FileManager API 的薄包装。

特性

  • 现代、面向对象的 API,用于访问、读取和写入文件。
  • 统一的、简单的 do, try, catch 错误处理。
  • 易于查找和交互保存的文件。
  • 单元测试覆盖率超过 95%。

示例

Codable 对象

struct User: Codable {
    let name: String
    let lastName: String
}

CodableFiles 共享引用。

let codableFiles = CodableFiles.shared

在默认目录中保存 Codable 对象。

let user = User(name: "First name", lastName: "Last name")
let savePath = try? codableFiles.save(object: user, withFilename: "userModel")

从默认目录加载 Codable 对象。

let loadedObject = try? codableFiles.load(objectType: User.self, withFilename: "userModel")

在默认目录中保存 Codable 对象数组。

let user = User(name: "First name", lastName: "Last name")
let anotherUser = User(name: "Another first name", lastName: "Another last name")
let savePath = try? codableFiles.saveAsArray(objects: [user, anotherUser], withFilename: "usersArray")

从默认目录加载 Codable 对象数组。

let loadedObjects = try? codableFiles.loadAsArray(objectType: User.self, withFilename: "usersArray")

从应用包中加载的文件中的 Codable 对象。

let loadedObject = try? codableFiles.load(objectType: User.self, fileName: "userModel")

从默认目录删除文件。

try? codableFiles.deleteFile(withFileName: "userModel")

从指定目录删除文件。

try? codableFiles.deleteFile(withFileName: "userModel", atDirectory: "directoryName")

删除默认目录。

try? codableFiles.deleteDirectory()

删除目录。

try? codableFiles.deleteDirectory(directoryName: "directoryName")

将指定名称的文件从 Bundle 复制到默认文档目录。

let savedPath = try? codableFiles.copyFileFromBundle(fileName: "user")

检查文档目录中是否存在指定名称的文件。

let isExistingFile = try codableFiles.isInDocumentsDirectory(fileName: "userModel")

使用 do-catch 模式运行方法的示例。

do {
    let savedPath = try codableFiles.copyFileFromBundle(fileName: "user")
} catch {
    print("CodableFiles - Error: \(error.localizedDescription)")
}

应用包

AppBundle 是只读的,因此您不能通过编程方式向其中写入任何内容。这就是为什么我们始终使用 Documents 目录来读取和写入数据。更多信息:[链接](https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html)

安装

CocoaPods

CocoaPods 是 Cocoa 项目的依赖项管理器。有关使用和安装说明,请访问他们的网站。要使用 CocoaPods 将 CodableFiles 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它。

pod 'CodableFiles'

Carthage

Carthage 是一个去中心化的依赖项管理器,它构建您的依赖项并向您提供了二进制框架。要使用 Carthage 将 CodableFiles 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它。

github "egzonpllana/CodableFiles"

通过 Manifest 文件使用 Swift Package Manager

Swift Package Manager 是一个用于自动化 Swift 代码分发的小工具,并集成到 swift 编译器中。

一旦您设置了 Swift 包,将 CodableFiles 作为依赖项添加就非常简单,只需将其添加到 Package.swiftdependencies 值中即可。

dependencies: [
    .package(url: "https://github.com/egzonpllana/CodableFiles.git", .upToNextMajor(from: "1.0.1"))
]

通过 XCode 使用 Swift Package Manager

要将 CodableFiles 作为依赖项添加到您的 Xcode 项目中,请选择 File > Swift Packages > Add Package Dependency 并输入仓库 URL。

https://github.com/egzonpllana/CodableFiles.git

作为文件

由于 CodableFiles 所有内容都在一个文件中实现,您可以通过简单地将文件 CodableFiles.swift 拖到您的 Xcode 项目中来在任意项目中使用它。

历史背景

那么,这项工作是为了什么呢?在我开发一个提供模拟URL会话和动态JSON数据的项目时,我发现这些数据可以被保存到文档目录中的文件中,或者从Bundle加载,这样我们就可以根据应用程序的需求来更新、读取或删除。必须保存或加载的对象必须遵守Codable协议。所以,我创建了 Codable Files,它可以更快、更直观地处理JSON数据。

有任何问题或反馈吗?

请自由打开一个问题,或者找到@egzonpllana on LinkedIn上的我。