2

我在弄清楚如何加密我的 sqlite 数据库时遇到了一些麻烦。我正在使用核心数据和以下项目:

https://cocoapods.org/?q=EncryptedCoreData

我想不通的是我应该如何使用这个项目来加密我的数据库。我已经安装了项目,我可以导入库 EncryptedCoreData。但是,我没有找到任何关于 swift 的实际示例的信息。在我的 appdelegate 我有以下代码

import UIKit
//import CoreData
//import SQLCipher
import EncryptedCoreData


lazy var persistentContainer: NSPersistentContainer = {
    // my attempt to initialize the container
    let modelURL = Bundle.main.url(forResource: "DbModel", withExtension: "momd")!
    var coordinator = NSPersistentStoreCoordinator.init(managedObjectModel: NSManagedObjectModel(contentsOf: modelURL)!)

    //originaly its
    let container = NSPersistentContainer(name: "DbModel")
    container.loadPersistentStores(completionHandler: { (storeDescription, error) in
        if let error = error as NSError? {
            fatalError("Unresolved error \(error), \(error.userInfo)")
        }
    })
    return container
}()

有人可以提供一个关于我应该如何初始化容器的例子吗?

4

1 回答 1

2

我将 Objective-C 翻译成 Swift 并且它起作用了,我只是添加了这些行

let container = NSPersistentContainer(name: "DbModel")
// Begin of my code
let cOpts : NSDictionary = [
            EncryptedStore.optionPassphraseKey() : "123deOliveira4", //your Key
            EncryptedStore.optionFileManager() : EncryptedStoreFileManager.default()
        ]
let desc = try! EncryptedStore.makeDescription(options: cOpts as! [AnyHashable : Any], configuration: nil)
container.persistentStoreDescriptions = [desc]
//End
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
        if let error = error as NSError? {
            fatalError("Unresolved error \(error), \(error.userInfo)")
        }
})
于 2018-01-04T19:25:58.030 回答