2015-12-08 8 views
12

私は、一部でReact Nativeを使用するアプリケーションを作成していますが、すべてではありません。アンロード/解放/削除ランタイムからのネイティブビューに反応する

は私がRCTRootView

のインスタンスnilにそれを設定し、それを解放していないようですスーパービューから削除しています。

CPUとRAMが高いので、Reactアプリはまだスレッド上で実行されているようです。

どうすればいいですか?

感謝:)

+0

[Bridge] Reactネイティブコンポーネントを含むViewControllerをポップアップするときにメモリを解放する#1487 https://github.com/facebook/react-native/issues/1487 – Gaston

+0

autoReleasePoolを試しましたか? – Gihan

答えて

3

あなたは、ビューだけでなく、別途、独自のRTCBridgeを作成し、それを解放する必要がある(=ゼロ)。

+0

私はこの回答を見つけましたが、残念ながら新しいRCTRootViewを作成するたびに私の記憶はまだまだ登場しています。私は自分のRCTBridgeと自分のRCTRootViewを作成し、それをいくつかのUIViewController内に張り付けます。 UIViewControllerがなくなると、なぜ何も設定しなくてもいいのですか?スタックはちょうど遠ざかりませんか?私たちはARC前の日ではありませんが、私は何が欠けていますか? – yura

3
RCTBridge * bridge 
[bridge invalidate]; 
bridge = nil; 

無効にするとnilはjsbundleのすべてのモジュールをクリアし、メモリからRCTRootViewインスタンスをクリアします。 ブリッジはRCTBridgeのオブジェクトです。

+0

私はこれに多くの時間を失った。ありがとう! –

関連する問題