数据存储管理器 0.9.3

数据存储管理器 0.9.3

Zaid M. Said维护。



数据存储管理器

Swift 5 Platform Carthage CocoaPods License Documentation Twitter

数据存储管理器是一个用Swift编写的持久化数据框架,并且可以使用Objective-C。

用法

import DataStoreManager

class ViewController: UIViewController {

    let manager = DataStoreManager(identifier: "Example")

    func fetchFromDataStore() {
    	manager.read(forKey: "Age", withObjectType: Int.self, forType: .userDefaults) { (object, _, _) in
            if let object = object {
                print("successfully read int \(object) from UserDefaults")
            }
    	}

        manager.read(forKey: "Balance", withObjectType: Decimal.self, forType: .genericKeychain) { (object, _, _) in
            if let object = object {
                print("successfully read decimal \(object) from Generic Keychain")
            }
        }

    	manager.read(forKey: "temp_file.txt", withObjectType: String.self, forType: .temporaryDirectory) { (object, _, _) in
            if let object = object {
    	        print("successfully read string \(object) from /tmp")
            }
    	}

    	manager.read(forKey: "Image", withObjectType: UIImage.self, forType: .cache) { (object, _, _) in
            if let object = object {
                print("successfully read image \(object) from NSCache")
            }
        }
    }

    func storeToDataStore(object: Any) {
    	manager.create(object: object, forKey: "Text", forType: .userDefaults) { (isSuccessful, _, _) in
            if isSuccessful {
    	        print("successfully create object at UserDefaults")
            }
    	}

        manager.update(object: object, forKey: "Text", forType: .genericKeychain) { (isSuccessful, _, _) in
            if isSuccessful {
                print("successfully update object at Generic Keychain")
            }
        }

    	manager.create(object: object, forKey: "Inbox/file.txt", forType: .documentDirectory) { (isSuccessful, _, _) in
            if isSuccessful {
    	        print("successfully create file at Inbox Document Directory")
            }
    	}

    	let exampleModel = DynamicModel(name: "Text", number: 123)

    	manager.create(object: exampleModel, forKey: "column_name", forType: .privateCloudDatabase) { (isSuccessful, recordID, _) in
            if isSuccessful {
    	        print("successfully create model at CloudKit Private Database with ID \(recordID)")
            }
    	}
    }
}

可用的存储类型

/// UserDefaults
.userDefaults

/// FileManager (~/Documents)
.documentDirectory

/// FileManager (/Users)
.userDirectory

/// FileManager (/Library)
.libraryDirectory

/// FileManager (/Applications)
.applicationDirectory

/// FileManager (/System/Library/CoreServices)
.coreServiceDirectory

/// FileManager (/tmp)
.temporaryDirectory

/// NSCache
.cache

/// Keychain (kSecClassGenericPassword)
.genericKeychain

/// Keychain (kSecClassInternetPassword)
.internetKeychain

/// CoreData
.coreData

/// CKContainer (.privateCloudDatabase)
.privateCloudDatabase

/// CKContainer (.publicCloudDatabase)
.publicCloudDatabase

/// CKContainer (.sharedCloudDatabase)
.sharedCloudDatabase

/// NSUbiquitousKeyValueStore
.ubiquitousCloudStore

先决条件

  • iOS 8.0+
  • macOS 10.10+
  • watchOS 2.0+
  • tvOS 9.0+
  • Xcode 10.2+

安装

Carthage

要安装它,请将以下行添加到您的Cartfile

github "zaidmsaid/DataStoreManager"

然后运行carthage update

有关最新安装说明,请参阅Carthage的README

CocoaPods

要安装它,只需将以下行添加到您的 Podfile

pod "DataStoreManager"

同时确保您已选择使用框架

use_frameworks!

然后使用 CocoaPods 1.6.0 或更高版本运行 pod install

Swift Package Manager

要安装它,只需将以下行添加到您的 Package.swift

dependencies: [
    .package(url: "https://github.com/zaidmsaid/DataStoreManager.git", .upToNextMinor(from: "0.9.3"))
]

或者更严格

dependencies: [
    .package(url: "https://github.com/zaidmsaid/DataStoreManager.git", .exact("0.9.3"))
]

然后运行 swift package update

Git Submodule

要将 DataStoreManager 安装到您的项目中,请按照以下步骤操作

  1. 通过打开终端,cd 到您的顶级项目目录,并输入命令 git submodule add https://github.com/zaidmsaid/DataStoreManager.git 将 DataStoreManager 作为 子模块 添加
  2. 打开 DataStoreManager 文件夹,并将 DataStoreManager.xcodeproj 拖动到您的应用程序项目的文件导航器中。
  3. 在 Xcode 中,通过单击左侧边栏中的蓝色项目图标,转到目标配置窗口,并在“Target”标题下选择应用程序目标。
  4. 确保 DataStoreManager.framework 的部署目标与应用程序目标相匹配。
  5. 在窗口顶部的标签栏中,打开“Build Phases”面板。
  6. 展开“Link Binary with Libraries”组,并添加 DataStoreManager.framework
  7. 单击面板左上角的 + 按钮,选择“New Copy Files Phase”。将此新阶段重命名为“Copy Frameworks”,将“Destination”设置为“Frameworks”,并添加 DataStoreManager.framework

文档

在使用 DataStoreManager 时遇到麻烦?请查看我们的 文档

开发技术

  • Xcode - 使用到的 IDE
  • jazzy - 用于生成文档

贡献

请阅读 CONTRIBUTING.mdCODE_OF_CONDUCT.md 了解我们的行为准则和提交 pull requests 的流程。

版本控制

我们使用 SemVer 进行版本控制。有关可用版本,请参阅 仓库的标签

作者

还可以查看参与这个项目的 贡献者列表

许可

本项目采用Apache License, Version 2.0许可 - 有关详细信息,请参阅LICENSE文件。

致谢

  • 感谢所有使用了代码的人士

analytics