这是一个很简单的问题,但我不知道为什么会这样。在我的头文件中,我声明了一个UIButton *leftButton。在viewdidload方法中,我这样做leftButton=[UIButton buttonWithType:UIButtonTypeRoundedRect];
然后在其他方法中我有:

    leftButton.frame=newFrame;
    leftButton.tag=i;
    [leftButton addTarget:self action:@selector(leftButtonSelected:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:leftButton];

然而,当调用上述方法时,我总是遇到崩溃。有时我得到一个消息,其他时候它只是崩溃没有消息。我真的无法复制任何崩溃消息,现在我得到的只是一个普通的崩溃,但是它不断地从一些奇怪的问题中崩溃,比如[uigestureRecognizer setframe]导致了问题或[webview setframe]之类的问题。出于某种原因,它一直认为leftButton不是一个uiButton,但事实并非如此。在我的整个项目中没有其他的名字叫leftbutton。有什么想法吗?

最佳答案

您的第一个方法是返回一个未初始化的对象,很可能在第二个方法被调用时释放它。在第一个方法中保留按钮,或者使用保留属性而不是ivar来保留按钮。
另外,请记住在最后的dealloc方法中释放它。

07-24 19:31