0

我想在 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'

如何解决它问候KL BAIJU

4

1 回答 1

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;

于 2012-04-28T11:07:51.063 回答