动画存储在sqlite表中的图像

时间:2012-12-03 08:23:25

标签: iphone sqlite xcode4.3

我在ViewDidAppear()

中有这个片段
photosImgView.animationImages = [NSArray arrayWithObjects: 
[UIImage imageNamed:@"blueButton.png"],[UIImage imageNamed:@"slider_ball.png"], 
[UIImage imageNamed:@"icon-small-50.png"], nil];

这里列出的图像应该在捆绑中,其工作正确但我想要的是而不是将图像从捆绑到photosImgView。 我想将带有列名称为PPhotos的sqlite表中的图像带到photosImgView进行动画制作。

我怎么能这样做任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我的建议:

  • 永远不要将图像保存在数据库中,因为它会使您的数据库变重
  • 您可以将图像保存在文档目录中并添加数据库路径
  • 如果您正在使用photolibrary图像保存数据库中的asset-url

<强>解决方案:

您可以使用选择查询

从数据库中读取数据
- (NSMutableArray *)getImage
{
  NSMutableArray *imageArray = [[NSmutableArray alloc] init];
  if (sqlite3_open([yourDatabasePath UTF8String], &dataBase) == SQLITE_OK)
  {
    NSString *select_sql=[NSString stringWithFormat:@"select PPhotos from imageTable];
    const char *sql = [select_sql UTF8String];
    sqlite3_stmt *selectstmt;
    if(sqlite3_prepare(database, sql, -1, &selectstmt, NULL) == SQLITE_OK)
    {
        while(sqlite3_step(selectstmt) == SQLITE_ROW)
        {
            NSData *dataForCachedImage = [[NSData alloc] initWithBytes:sqlite3_column_blob(selectstmt, 0) length: sqlite3_column_bytes(selectstmt, 0)];           
            [imageArray addObject:[UIImage imageWithData:imageArray]];
        }
    }

  return [imageArray autorelease];
}

此处getImage将返回存储在数据库中的所有图像。