我正在使用SQLite 3.0和iOS5。
现在我想将数据存储在数据库中的vrchar2数据类型中,并在我的iPhone视图中检索它。
我已经使用了存储在BLOB数据类型中的图像,并通过NSDATA我已经检索过它。但现在我想在ImageView中检索它..
我该如何使用它?
答案 0 :(得分:1)
您应首先使用以下方法从NSData创建UIImage:
UIImage *img = [[UIImage alloc] initWithData:theData];
然后您可以在图片视图中使用此图片:
UIImageView *imgView = [[UIImageView alloc] initWithImage: img];
不要忘记进行适当的内存管理!
答案 1 :(得分:1)
将整个图像用于数据库是否有任何特定原因?
这背后的原因仅仅是因为我认为将NSData存储在数据库中会在数据库中存储大量数据,从长远来看,这会使您的数据库变得非常繁重。
更好的选择是将图像保存在文档目录中,或者可能是图书馆目录,然后只需在数据库中保存图像的完整图像路径。
然后只需在imageView中检索它,你需要调用
UIImageView *imgView = [UIImageView setImage:[[UIImage alloc] initWithContentsOfFile:filePath]];
这里你需要传递的是你从数据库中提取的“filePath”。
希望这会对你有所帮助。
答案 2 :(得分:0)
您必须创建一个DAO,以便从sqlite文件中检索信息。然后调用该文件以获取所需的所有信息。 然后像这样检索blob:
const char * myData = sqlite3_column_blob(statement, 1(this number is different according to your database));
int myDataSize = sqlite3_column_bytes(statement, 1);
NSData *data = [NSData dataWithBytes:myData length:myDataSize];
然后初始化
myPhoto.thePhoto = [[UIImage alloc] initWithData:data];