如何在ios中使用FMDB在sqlite中保存图像?

如何在ios中使用FMDB在sqlite中保存图像?,ios,image,sqlite,nsdata,fmdb,Ios,Image,Sqlite,Nsdata,Fmdb,我想在我的数据库中保存图像并在需要时检索,我已经尝试了通过搜索得到的所有解决方案 [database executeQuery: @"INSERT INTO customerPresImage (cbFormFK, imageName, imagePath, imageData) VALUES (?, ?, ?, ?)", cbFormPK, [[AllFormFields sharedManager].nameSaved objectAtIndex:i], [[AllFormFields

我想在我的数据库中保存图像并在需要时检索,我已经尝试了通过搜索得到的所有解决方案

[database executeQuery:
@"INSERT INTO customerPresImage (cbFormFK, imageName, imagePath, imageData) VALUES (?, ?, ?, ?)", 
cbFormPK, 
[[AllFormFields sharedManager].nameSaved objectAtIndex:i],
[[AllFormFields sharedManager].images objectAtIndex:i], 
[[AllFormFields sharedManager].actualImageData objectAtIndex:i]
];
包含NSData对象,但当我尝试执行我的应用程序时,此时卡住了:

我还尝试将该对象归档,但从逻辑上讲,这没有意义,因为我的阵列中已经有nsdata对象

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:[[AllFormFields sharedManager].actualImageData objectAtIndex:i]];
另外:我在sqlite中使用blob数据类型。请建议我更正,或者是否有其他方法来完成

我看到了这些问题,并采取了行动

使用

[数据库执行更新:…]而不是 [数据库执行程序:…]

请参阅在上执行更新。这是第一行:

任何不是SELECT语句的SQL语句都符合以下条件 更新


屏幕截图表明您有内存管理问题,试图访问不再可用的指针/变量,但为什么在我删除列名并执行它时成功了。但nsdata对象并没有保存在它中,这对我来说并不好。虽然我已经找到了方法,但是这种保存图像数据的方法对我来说不起作用。idk为什么。做一些错误检查。如果你不知道怎么做:阅读FMDB网站上关于执行更新的部分,上面有描述。确保您尝试插入的对象是有效的非零对象。我认为当一个对象为零时,它可能会失败。
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:[[AllFormFields sharedManager].actualImageData objectAtIndex:i]];