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

Posted

技术标签:

【中文标题】从\'NSInteger\'(又名\'int\')分配给\'NSString *\'的不兼容整数到指针转换;【英文标题】:Incompatible integer to pointer conversion assigning to 'NSString *' from 'NSInteger' (aka 'int');从'NSInteger'(又名'int')分配给'NSString *'的不兼容整数到指针转换; 【发布时间】:2012-06-01 10:03:56 【问题描述】:

在表格单元格视图中显示 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;

【问题讨论】:

【参考方案1】:

您的 aBook.bookID 变量可能是 NSInteger,要将其转换为 NSString,请使用:

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

【讨论】:

【参考方案2】:

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

对于整数

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

对于 NSInteger

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

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

【讨论】:

以上是关于从'NSInteger'(又名'int')分配给'NSString *'的不兼容整数到指针转换;的主要内容,如果未能解决你的问题,请参考以下文章

不兼容的整数到指针的转换将“NSInteger”(又名“int”)发送到“NSInteger *”(又名“int *”)类型的参数

不兼容的指针类型将“NSString *”发送到“NSInteger *”类型的参数(又名“int *”)

Nsinteger 可访问问题

如何修复:无法将“CLLocationDegrees”(又名“Double”)类型的值分配给“Float!”在斯威夫特 3

ios - 从整数(int 或 NSInteger)到 UICollectionView 的 NSIndexPath*

iOS SKSpriteNode 错误:从不兼容类型“CGRect”(又名“struct CGRect”)分配给“skspritenode *const __strong”