不兼容的整数到指针转换从'NSInteger'(又名'int')分配给'NSString *';

时间:2012-06-01 10:03:57

标签: objective-c

在表格单元格视图中显示xml已解析数据时出现此语义问题。应用程序运行成功但当我选择任何行时,应用程序进入详细视图,此时应用程序崩溃。请帮助!!!

此行第三种情况中出现语义问题

cell.textLabel.text = aBook.bookID;

应用代码:

- (UITableViewCell *)tableView:(UITableView *)tv 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{

  static NSString *CellIdentifier = @"Cell";

  UITableViewCell *cell = 
    [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
                                   reuseIdentifier:CellIdentifier] autorelease];
  }

  switch (indexPath.section) {
    case 0:
      cell.textLabel.text = aBook.name;
      break;
    case 1:
      cell.textLabel.text = aBook.author;
      break;
    case 2:
      cell.textLabel.text = aBook.price;
      break;
    case 3:            
      cell.textLabel.text = aBook.bookID;
      break;
  }

  return cell;
}

2 个答案:

答案 0 :(得分:3)

可能你的 aBook.bookID 变量是一个NSInteger,要在NSString中转换它,请使用:

case 3:            
    cell.textLabel.text = [NSString stringWithFormat:@"%i", aBook.bookID];
    break;

答案 1 :(得分:2)

您的案例3将取决于您的bookID

对于int

cell.textLabel.text = [NSString stringWithFormat:@"%d",aBook.bookID];

对于NSInteger

 cell.textLabel.text = [NSString stringWithFormat:@"%i",aBook.bookID];

因为您正在为字符串提供int值