测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年10月 |
SwiftSwift 版本 | 4 |
SPM支持 SPM | ✗ |
Maintained by Alex Nagy.
SwiftyPlistManager 是一个轻量级的 plist 数据管理框架,适用于 iOS 10.3+
我在 rebeloper.com 上写了一篇关于 SwiftyPlistManager 用法的博客文章,其中包含更多信息和方便的图片。
SwiftyPlistManager 需要模板 plist 文件来将它们用作数据保存和加载的起点。基本上,在应用第一次启动时,它将把它们复制到其在 Document 目录中,然后您将与此复制的 plist 版本进行交互。
只需将您的 plist 文件(或创建它)拖放到您的项目中。您可以选择编辑值以反映您希望的数据结构。
重要:您必须在应用每次启动时都“启动” SwiftyPlistManager。假设您已将空的 Data.plist
文件添加到您的项目中,并希望将其添加到您的 Appdelegate.swift
文件中的 application(_:didFinishLaunchingWithOptions:)
函数中下一行代码
SwiftyPlistManager.shared.start(plistNames: ["Data"], logging: true)
如果想要记录在背后的操作,将 logging
设置为 true
。在发布前或当您对控制台中的过多文本感到厌烦时,可选地将它设置为 false
。
plistNames
参数接受一个 String
数组。您可以用想要的任意数量的 plist 文件名启动 SwiftyPlistManager。
SwiftyPlistManager.shared.start(plistNames: ["Data", "OtherData"], logging: true)
在您能够与任何键值对交互之前,您需要将其添加到您的数据结构中。所有在 plist 文件中支持的类型都受支持。SwiftyPlistManager 使用完成处理程序,以便您知道操作何时完成。
SwiftyPlistManager.shared.addNew("helloNewValue", key: "newKey", toPlistWithName: "Data") { (err) in
if err == nil {
print("Value successfully added into plist.")
}
}
接下来,您想编辑您的值,只需保存新值即可。
SwiftyPlistManager.shared.save("helloNewValue", forKey: "newKey", toPlistWithName: "Data") { (err) in
if err == nil {
print("Value successfully saved into plist.")
}
}
如果您想通过完成处理程序获取回值,您将返回一个 Any?
对象作为您的 result
。
SwiftyPlistManager.shared.getValue(for: "newKey", fromPlistWithName: "Data") { (result, err) in
if err == nil {
print("The Value is: '\(result ?? "No Value Fetched")'")
}
}
通常您想立即将您的结果转换为常量,而不是等待完成处理程序完成。您可以使用以下调用完成此操作。在此示例中,我们将使用 guard-let
语句解包它。
guard let fetchedValue = SwiftyPlistManager.shared.fetchValue(for: "newKey", fromPlistWithName: "Data") else { return }
有时候您可能想要移除值-键对。
SwiftyPlistManager.shared.removeValueKeyPair(for: "newKey", fromPlistWithName: "Data") { (err) in
if err == nil {
print("Key-Value pair successfully removed from plist")
}
}
或者,您可能希望从您的 plist 文件中删除所有数据。
SwiftyPlistManager.shared.removeAllKeyValuePairs(fromPlistWithName: "Data") { (err) in
if err == nil {
print("Successfully removed all Key-Value pairs from plist")
}
}
注意:这将不会从磁盘上删除 plist。它只会清空所有键值对。
让我们来谈谈错误处理。在使用 SwiftyPlistManager 执行调用时,你可以在完成处理程序中访问可能的错误。
public enum SwiftyPlistManagerError: Error {
case fileNotWritten
case fileDoesNotExist
case fileUnavailable
case fileAlreadyEmpty
case keyValuePairAlreadyExists
case keyValuePairDoesNotExist
}
克隆或下载仓库。找到 SwiftyPlistManager.swift
文件。将其拖放到你的项目中,设置完成。
语言 | 分支 | Pod 版本 | Xcode 版本 |
---|---|---|---|
Swift 3.1 | master | >= 1.0.1 | Xcode 8.3 或更高版本 |
Swift 4 | master | >= 1.0.1 | Xcode 9 或更高版本 |
查看 发布页面
项目包含一个 iOS 的演示应用程序,和一个示例 ViewController.swift,展示如何使用 SwiftyPlistManager。
版权所有 (c) 2017 Alex Nagy
任何获得此软件及其相关文档(“软件”)副本的人,都可以免费获得本许可证
使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本,并允许向任何人提供软件副本,条件如下:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,没有任何形式的明示或暗示保证,包括适销性、适用于特定目的和不侵权保证。在任何事件中,作者或版权所有者不对任何索赔、损害或其它责任承担责任,无论是基于合同、侵权或其他,由软件或使用或操纵软件而引起,无论是内部发生还是外部发生。
软件授权使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本,并允许向要提供软件的人提供软件副本,但受以下条件约束:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,没有任何形式的明示或暗示保证,包括适销性、适用于特定目的和不侵权保证。在任何事件中,作者或版权所有者不对任何索赔、损害或其它责任承担责任,无论是基于合同、侵权或其他,由软件或使用或操纵软件而引起,无论是内部发生还是外部发生。
在本软件被任何人提供时,本许可证根据以下条件授予,不得收费。
软件按“原样”提供,没有任何形式的明示或暗示保证,包括适销性、适用于特定目的和不侵权保证。在任何事件中,作者或版权所有者不对任何索赔、损害或其它责任承担责任,无论是基于合同、侵权或其他,由软件或使用或操纵软件而引起,无论是内部发生还是外部发生。
本软件授权供任何人在此软件以及与此软件相关的文档副本中的“软件”使用,没有限制,包括无限制地使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本的权限,并且允许向软件提供的人进行此类操作,但需遵守以下条件。
上述版权声明和本许可声明应包含在所有副本或主要部分中。
本软件按“原样”提供,没有任何形式的明示或暗示保证,包括适销性、适用于特定目的和不侵权保证。在任何事件中,作者或版权所有者不对任何索赔、损害或其它责任承担责任,无论是基于合同、侵权或其他,由软件或使用或操纵软件而引起,无论是内部发生还是外部发生。
在本软件被任何人提供时,本许可证根据以下条件授予,不得收费。
本软件按“原样”提供,没有任何形式的明示或暗示保证,包括适销性、适用于特定目的和不侵权保证。在任何事件中,作者或版权所有者不对任何索赔、损害或其它责任承担责任,无论是基于合同、侵权或其他,由软件或使用或操纵软件而引起,无论是内部发生还是外部发生。
在本软件被任何人提供时,本许可证根据以下条件授予,不得收费。