【问题标题】:Get Sqlite database from NSData instead of file从 NSData 而不是文件获取 Sqlite 数据库
【发布时间】:2017-07-23 18:16:31
【问题描述】:

我曾经使用 FMDB 从文件中读取 sqlite 数据。

FMDatabase *db = [FMDatabase databaseWithPath:filePath];

现在我想加密文件。当应用程序打开时,它会将文件解密为 NSData 对象。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

  NSData *decryptedData = [self getDecryptedData]; 

 return YES;

}

有什么方法可以从 NSData 获取 FMDatabase 对象?我不想将 NSData 保存到文件中,因为它已被解密。

【问题讨论】:

    标签: ios objective-c sqlite nsdata fmdb


    【解决方案1】:

    我认为 FMDatabaseSQLite 通常与文件系统的东西绑定在一起,这意味着默认情况下可能无法做到这一点。

    我猜你的选择:

    • 对加密的NSData 使用单独的文件,对解密的SQLite DB 使用另一个文件——但是这种解决方案失去了拥有第一个文件的任何好处

    • NSData 存储在文件中并使用临时或内存中的SQLite DB(请参阅https://github.com/ccgus/fmdb#database-creation),您需要在启动时导入数据并在关闭时从中导出数据下

    • 使用系统范围的Security 东西的更复杂的方法,但我真的没有这方面的经验

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多