UIAlertView抛出UIAlertButton的异常NSInternalInconsistencyException

时间:2012-12-26 12:18:29

标签: objective-c exception uialertview

我一直在努力弄清楚为什么错误发生在如此简单的代码中:

UIAlertView *alertDialog;
alertDialog = [[UIAlertView alloc]
               initWithTitle:@"Alert button detected"
               message:@"I need your attention NOW"
               delegate:self
               cancelButtonTitle:@"OK"
               otherButtonTitles:@"Maybe later", @"Never", nil
               ];
[alertDialog show];
  

由于未捕获异常'NSInternalInconsistencyException'而终止应用程序,原因:'请求视图窗口(< UIAlertButton:0x885f020; frame =(0 0; 0 0); transform = [0,0,0,0,具有nil层的0,0]; alpha = 0; opaque = NO; layer =(null)>)。这个视图可能还没有收到initWithFrame:或initWithCoder:。'

我尝试过:

  • 在ios 5和6模拟器中部署错误
  • 如果按钮设置为 nil ,则可以正常工作(无按钮显示)

1 个答案:

答案 0 :(得分:0)

我正在检查整个项目的设置,附加文件并逐个删除,直到我看到一个我之前手动创建的类别类:

@interface UIButton (UIButton)

只有 init 方法。删除此课程后,它有效! (或删除.m中可能不完整的init方法),虽然我没有将它作为标题导入到我正在使用UIAlertView的viewcontroller中。

-(id)init
{
    self.backgroundColor = [UIColor blueColor];
    return self;
}

感谢您的帮助。我将需要研究更合适的方式来实现自定义UIButton。