如何在数组中查看tableview中的图像

时间:2012-04-28 07:11:36

标签: iphone

我想在tableview上添加图片。 我创建了一个UITableViewCell对象。在.h文件中

@interface MainView1 : UITableViewCell{

IBOutlet UILabel *cellText;

IBOutlet UIImageView *productImg;

IBOutlet UILabel *cellText1;

}

- (void)LabelText:(NSString *)_text;

- (void)LabelText1:(NSString *)_text;

- (void)ProductImage:(NSString *)_text;

 @end

和.m文件

- (void)LabelText:(NSString *)_text;{

  cellText.text = _text;
}

- (void)LabelText1:(NSString *)_text;{

     cellText1.text=_text;
 }


  - (void)ProductImage:(NSString *)_text;{

productImg.image = [UIImage imageNamed:_text];
  }

并在主文件中

//页面包含表格

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  MainView1 *cell = (MainView1 *)[tableView dequeueReusableCellWithIdentifier: MyIdentifier];
if(cell == nil) {
    [[NSBundle mainBundle] loadNibNamed:@"MainView1" owner:self options:nil];
    cell = tableCell1;  
    [cell LabelText:[arryList objectAtIndex:indexPath.row]];
[cell ProductImage:[imgNameArray objectAtIndex:indexPath.row]];

    [cell LabelText1:[yesArray objectAtIndex:indexPath.row]];

}

图像阵列来自数据库 像这样

 NSData   *imgdata=[[NSData alloc]initWithBytes:sqlite3_column_blob(cmp_sqlstmt,0)       length:sqlite3_column_bytes(cmp_sqlstmt,0)];

 [imgNameArray addObject:dataImage];

问题是只有图像没有显示 错误显示是 无法识别的选择器发送到实例0x4e53940'

如何解决它 问候 K L BAIJU

1 个答案:

答案 0 :(得分:5)

从数据库中,您可以获得NSData形式的图像。您将其保存在数据源阵列中。

但是,您将其作为NSString

传递

[cell ProductImage:[imgNameArray objectAtIndex:indexPath.row]];

其中

- (void)ProductImage:(NSString *)_text;{

productImg.image = [UIImage imageNamed:_text];

}

您基本上需要将方法参数更改为NSData类型

- (void)ProductImage:(NSData *) imageData{

    productImg.image = [UIImage imageNamed:_text];

}

但这仍然行不通。因为[UIImage imageNamed:]方法尝试从主包中获取命名图像。但在您的情况下,您需要来自您拥有的数据的图像。所以你的最终方法应该是这样的。

- (void)ProductImage:(NSData *) imageData{

        productImg.image = [UIImage imageWithData: imageData];

}

另外,不要忘记将头文件中的方法声明更改为

- (void)ProductImage:(NSData *) imageData;