2013-03-11 78 views
0

我制作了一个弹出视图,其上有一个关闭视图的UIButton。每当我把上的按钮,程序退出此消息:[MTPopupWindow performSelector:withObject:withObject:]: message sent to deallocated instance 0x84675f0 这里是header filesource file使用我使用这行代码的类:错误:发送到释放实例的消息

[MTPopupWindow showWindowWithContent:@"Some text here" insideView:self.view]; 

我认为有什么问题重新分配我的对象过早,但因为我使用ARC我不知道什么是造成这个问题。我认为问题出现在这行代码中:

[self.closeBtn addTarget:self action:@selector(closePopupWindow) forControlEvents:UIControlEventTouchUpInside]; 

但是我看不出有什么问题。

回答

1

你应该知道有一个问题,当你写这样的:

// Cast to void because we don't use the result (otherwise compiler warning) 

既然你不使用的结果,ARC认为,它是免费的这条线后,插入您的对象上的释放,这意味着对象正在尽早被释放。

有很多方法可以解决这个问题;看看诸如NS_RETURNS_RETAINED之类的东西,或者让弹出窗口的调用者持有强烈的引用。

+0

好的,你能给我一个小小的代码示例吗? – Shinonuma 2013-03-11 14:26:09

+0

我从NS_RETURNS_RETAINED找不到任何有用的东西,你能给我一个例子说明如何解决这个问题吗? – Shinonuma 2013-03-11 14:52:35

相关问题