【问题标题】:How to store images in the sqlite database in iphone [duplicate]如何将图像存储在iphone的sqlite数据库中[重复]
【发布时间】:2023-03-19 17:14:01
【问题描述】:

可能重复:
Reading and writing images to an SQLite DB for iPhone use

如何在sqlite数据库中以blob类型将图像文件存储在数据库中以及如何从数据库中检索图像。

【问题讨论】:

    标签: iphone database ipad sqlite


    【解决方案1】:

    将图像保存在您的 nsdocument 目录中。在数据库中保存此图像的路径。这是一个好方法。如果你在数据库中保存 blob 会很重。加载需要时间。

    【讨论】:

      【解决方案2】:

      首先将图像转换为 NSData
      然后将 NSData 转换为字节
      然后存储该字节... 抱歉我不知道应该调用什么方法,因为我使用的核心数据远胜于sqlite c api

      【讨论】:

      • 不介意core data is far better than sqlite c api ?你这样说应该有明显的区别。
      • 只有一个答案,即 www.google.com :) :) :) 但实际上它的方法是用目标 c 编写的,插入、删除和更新非常容易。而且核心数据使用sqlite作为db。
      • 假设您有 10000 行并且您只想根据 ID 更新单行,您必须在核心数据和 sqlite db 中做什么?你不应该这样低估。每个部分都是可用的,我们必须明智地使用它是最好的。想想吧
      • 回答你必须为核心数据加载内存中的所有行,而它只能在单个查询更新时完成。希望你明白我的意思
      • 我不认为我必须一次更新 10000 行......它是移动应用程序而不是 Web 应用程序。无论如何,这取决于您的应用程序。在你的情况下 sqlite c api 更好......我不想争论......:/
      【解决方案3】:

      最简单的方法是使用 Objective-C sqlite 包装器,例如 fmdb。然后,您可以将 UIImagePNGRepresentation() 中的 NSData 句柄作为 blob 传递到包装器中。

      或者,您可以这样做:

      NSData *rawImage = UIImagePNGRepresentation(myUIImage);
      sqlite3_bind_blob(mySavedSQLStatement, 2, [rawImage bytes], [rawImage length], SQLITE_TRANSIENT);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-22
        • 1970-01-01
        • 2012-03-10
        • 2012-06-14
        • 2013-11-01
        • 2010-11-07
        相关资源
        最近更新 更多