0

UIButtonビューを閉じるポップアップビューを作成しました。ボタンを押すたびに、プログラムは次のメッセージで終了します: [MTPopupWindow performSelector:withObject:withObject:]: message sent to deallocated instance 0x84675f0 Here is the header file and source file to use the class I use this line of code:

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

オブジェクトの割り当て解除が早すぎることに何か問題があると思いましたが、使用しARCているので、この問題の原因はわかりません。問題は次のコード行にあると思います。

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

しかし、私はこれに問題はないと思います。

4

1 に答える 1

1

これを書いたときに問題があったことを知っているはずです:

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

結果を使用しないため、ARCは、オブジェクトのその行の後にリリースを自由に挿入できると考えています。これは、オブジェクトの割り当てがかなり早く解除されることを意味します。

これを回避する方法はいくつかあります。NS_RETURNS_RETAINEDポップアップウィンドウの呼び出し元がそれを強く参照しているようなものを見てください。

于 2013-03-11T14:22:05.153 に答える