HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 将sqlite数据库转换为nsdata并返回大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我将sqlite文件转换为NSData以将其保存在文档目录中.现在我将它转换为sqlite文件并将该文件保存在文档目录中,但是新的sqlite文件不是有效的sqlite文件,并且代码现在不会从中读取数据.下面是我用来将NSData转换为sqlite文件代码

-(void)openDataBase{
// First,test for existence.
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *documentsDirectory = [paths objectATindex:0];
NSString *writableDBPath = [documentsDirectory StringByAppendingPathComponent:@"Demo.sqlite"];
success = [fileManager fileExistsAtPath:writableDBPath];

if (success)
{
    NSData *data=[[NSData alloc]initWithContentsOfFile:writableDBPath];
    NSString * _key = @"111";
    NSData *decryptedData = [data AES256DecryptWithKey:_key];
  [fileManager createFileAtPath:writableDBPath contents:decryptedData attributes:nil];
    return;
}
// The writable database does not exist,so copy the default to the appropriate LOCATIOn.
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] StringByAppendingPathComponent:@"Demo.sqlite"];

NSData *sqliteData = [NSData dataWithContentsOfFile:defaultDBPath];

NSString * _key = @"111";

NSData *encryptedData = [sqliteData AES256EncryptWithKey:_key];

success= [fileManager createFileAtPath:writableDBPath contents:encryptedData attributes:nil];
if (!success)
{
    NSAssert1(0,@"Failed to create writable database file with message '%@'.",[error localizedDescription]);} }

我的代码有什么问题,我想我一直在创建新的sqlite文件但是如何解决这个问题呢?
任何人都可以帮助我如何将NSData转换为sqlite文件.
我应该在库中编写sqlite文件,然后从那里访问它吗?
但每次更新都会解密sqlite文件,我必须解密它.

解决方法

如果该文件已存在,您的代码将解密并覆盖它.如果没有,则将数据库的加密副本写入磁盘.因此,认情况下,您有一个无法使用的加密文件.

大佬总结

以上是大佬教程为你收集整理的ios – 将sqlite数据库转换为nsdata并返回全部内容,希望文章能够帮你解决ios – 将sqlite数据库转换为nsdata并返回所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。