我做了一个弹出式视图,其上有UIButton
关闭视图。每当我按下按钮时,程序都会退出并显示以下消息:[MTPopupWindow performSelector:withObject:withObject:]: message sent to deallocated instance 0x84675f0
以下是header file和source file使用我使用这行代码的类:
[MTPopupWindow showWindowWithContent:@"Some text here" insideView:self.view];
我认为过早释放我的对象有问题,但因为我正在使用ARC
我不确定导致这个问题的原因。我认为问题在于这行代码:
[self.closeBtn addTarget:self action:@selector(closePopupWindow) forControlEvents:UIControlEventTouchUpInside];
但我没有看到任何错误。
答案 0 :(得分:1)
你应该知道写这个时有问题:
// Cast to void because we don't use the result (otherwise compiler warning)
由于您不使用结果,因此ARC认为可以在该行之后在对象上插入一个版本,这意味着该对象将在早期被解除分配。
有很多方法可以解决这个问题。看看NS_RETURNS_RETAINED
之类的内容,或者让弹出窗口的调用者对它有强烈的引用。