UserCaches 0.0.5

UserCaches 0.0.5

CUITCHE维护。



  • 作者:
  • hejunqiu

UserCaches

Build Status Swift4 compatible

类似iOS平台上的UserDefaults的键值存储缓存工具。

使用方法

常规使用

类似于UserDefaults

// Save cache.
let intVal = 123
try UserCaches.standard.set(intVal, forKey: key)
// Get cache. Specify the type('Int') to decide generic type.
let cache: Int = try UserCaches.standard.value(forKey: key)

UserCaches.standard是UserCaches的全局实例。

还可以创建新的实例

let cacheHelper = try UserCaches(cachePath: URL(fileURLWithPath: "/tmp/usercache.db"))

高级使用

然而,我建议使用以下方法。 (例如:设置百度应用)

import UserCaches

struct User: Codable {
    let id: Int64
    let name: String
}

enum ComBaiduMobileUserSetting: String, UserCachesSettable {
    /// 隐私设置 - 允许通过手机号搜索到我
    case privacy_findMeByPhoneNumber
    /// 隐私设置 - 可通过感兴趣的人找到我
    case privacy_findMeByInteresting
    /// 隐私设置 - 开启通讯录关联
    case privacy_relateAddressList
    /// 隐私设置 - 黑名单
    case privacy_blacklist
    /// 字体大小
    case font_size
    var identifierMode: CacheKeyMode { return .identifier }
}
// Save caches
ComBaiduMobileUserSetting.privacy_findMeByPhoneNumber.storage = true
ComBaiduMobileUserSetting.privacy_findMeByInteresting.storage = false
ComBaiduMobileUserSetting.privacy_relateAddressList.storage   = false
ComBaiduMobileUserSetting.privacy_blacklist.storage = [CacheCodability(User(id: 100120054,
                                                                            name: "abc"))]
ComBaiduMobileUserSetting.font_size.storage = 20

// Get caches
let isFindMeByPhoneNumber: Bool? = ComBaiduMobileUserSetting.privacy_findMeByPhoneNumber.value()
let isFindMeByInteresting: Bool? = ComBaiduMobileUserSetting.privacy_findMeByInteresting.value()
let isRelateAddressList: Bool? = ComBaiduMobileUserSetting.privacy_relateAddressList.value()
let blacklist: [CacheCodability<User>] = ComBaiduMobileUserSetting.privacy_blacklist.value()
let fontSize: Int = ComBaiduMobileUserSetting.font_size.value() ?? 16

如果您将identifierMode设置为CacheKeyMode.identifier,则将转换大写字母为小写字母,并将"。"插入到枚举名左侧翻译的左侧,并且用"。"替换枚举例表中的"_"。

如上所述

"ComBaiduMobileUserSetting" => "com.baidu.mobile.user.setting"

"privacy_findMeByPhoneNumber" => "privacy.findMeByPhoneNumber"

case privacy_findMeByPhoneNumber转换为com.baidu.mobile.user.setting.privacy.findMeByPhoneNumber,作为键,在此示例中与true关联。

默认支持类型

默认支持UseCaches

默认支持类型
布尔型
整型,Int64,无符号整型,Uint64
浮点型,Double
字符串,Data
日期(通过TimeInterval实现)
CacheCodable类型的数组
键和值都是CacheCodable类型的字典
CacheCodability

特别是,如果struct(或class)依赖于Codable,使用CacheCodability封装struct(或class),UserCaches也接受它。参见上面的CacheCodability

安装

注意:UserCaches需要Swift 4.1和Xcode 9.3及以上。

CocoaPods

CocoaPods是Cocoa项目的依赖管理器。要使用CocoaPods安装UserCaches

  1. 确保CocoaPods已经安装。(UserCaches需要版本1.0.0或更高。)

    # Using the default Ruby install will require you to use sudo when
    # installing and updating gems.
    [sudo] gem install cocoapods
  2. 更新你的Podfile,包括以下内容

    use_frameworks!
    
    target 'YourAppTargetName' do
        pod 'UserCaches', '~> 0.0.1'
    end
    
  3. 运行pod install --repo-update

Swift Package Manager

Swift Package Manager是管理Swift代码分发的一个工具。

  1. 将以下内容添加到你的Package.swift文件中
dependencies: [
    .package(url: "https://github.com/CUITCHE/UserCaches.git", from: "0.0.3")
]
  1. 构建你的项目
$ swift build

如何测试

  1. 克隆此仓库。
  2. 进入仓库目录。
  3. 执行swift test指令。

作者

hejunqiu

许可

UserCaches遵循MIT许可。