【问题标题】:Exception in button tag按钮标签中的异常
【发布时间】:2014-01-06 06:57:35
【问题描述】:

我已经为按钮设置了标签,但是在这个方法中我遇到了一个异常,我不知道为什么

- (IBAction)showComments:(UIButton *)sender
{   
     int tag=[sender tag];
     NSLog(@"The tag clicked:%@",[blogids objectAtIndex:tag]);
}

blogids 是我的 NSMutableArray

谢谢

【问题讨论】:

  • 它给出了什么错误/异常?
  • 它正在显示这个'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
  • 把错误贴在这里只有我们能理解
  • 检查您的blogids 计数,然后尝试访问数组中的对象。这是因为tag 大于blogids 数组中的对象数。
  • 显示创建数组 blogids 的代码,并显示将标签分配给按钮的代码。

标签: ios iphone objective-c nsmutablearray


【解决方案1】:

您收到 NSRangeException,这意味着您正在尝试检索不存在的数组元素。我建议您应该使用您尝试检索的标记值检查数组计数。

NSLog(@"%d",[blogids count]);
NSLog(@"%@",tag);

我确定标签值大于计数。如果您想使用标签从数组中检索值,那不应该是这样。

谢谢,

【讨论】:

    【解决方案2】:

    您收到异常的原因是因为您的标签大于 blogids 计数。

    将按钮添加到数组中就不会崩溃了。

    例如:

    blogids = [[NSMutableArray alloc]init];
    [blogids addObject:oneOfYourButtons];
    

    另外,如果您只想查看标签编号,请使用:

    NSLog(@"The tag clicked:%d",tag);
    

    代替:

    NSLog(@"The tag clicked:%@",[blogids objectAtIndex:tag]);
    

    【讨论】:

      【解决方案3】:

      您的 blogids 数组为空。请检查您从按钮标签获得的索引中是否有对象

      【讨论】:

        【解决方案4】:

        您的blogids 在这里是空数组。因此,它显示为[0 .. 0] 的边界(即数组计数为零)。只需检查您的阵列初始化。

        【讨论】:

          猜你喜欢
          • 2023-03-03
          • 1970-01-01
          • 2016-09-27
          • 1970-01-01
          • 1970-01-01
          • 2014-08-22
          • 1970-01-01
          • 1970-01-01
          • 2015-08-17
          相关资源
          最近更新 更多