我正在开发一个 iPad 项目(iOS 5.1),该项目需要从 url 获取图像并将它们缓存为 sqlite3 blob。我正在使用 ASIHTTPRequest 来获取图像数据,并使用 SOCI 将 blob 插入到缓存表中。该项目是用 C++ 编写的(与最小的 Objective-C 混合)。
问题是 ASIHTTPRequest 通过一个 NSData 对象返回二进制数据......我可以从中获取一个 const unsigned char* 指针。但是 SOCI 的接口只提供了一个通过 char* 指针读取/写入 blob 数据的接口……(SOCI 在打开/写入/读取 sqlite_blob 之前在内部将数据写入 char* 缓冲区)。
那么,接下来的问题是将我的 unsigned char* 缓冲区转换为 char* 缓冲区是一个可行的解决方案吗?..如果是这样,我该怎么做?..否则,我还有什么其他选择可以解决这个问题?