私は多くのaddSubviewとremoveFromSuperviewをやっているアプリケーションで作業していますが、アプリケーションが弱いメモリ管理のためにクラッシュしています。 addSubviewがビューの参照カウントを1つ増やしたかどうかを知りたいですか? removeFromSuperViewは参照カウントを1減らしますか?removeFromSuperviewおよびaddSubviewリレーションを参照カウントで使用しますか?
1
A
答えて
0
はい、あります。一般に、オブジェクト(オブジェクトのサブビューの配列を含む)にオブジェクトを追加すると、保持カウントが増加します。
0
あなたは、このようなビュー作成する場合はい、:
UIView *myView = [[UIView alloc] init];
を保持カウントが1であり、あなたが所有者です。
あなたが別のビューに、このビューを追加する場合は、2番目のビューは、あなたが解放する必要があるので、それの所有者になりますし、カウントを増加します:今
[mySecondView addSubView:myView];
[myView release];
、あなたがそれを削除する場合ビュー、あなたが実行します。removeFromSuperViewは、カウントをデクリメント原因
[myView removeFromSuperView];
そして、あなたのビューが完全に解放されます。
ので、要約:
- のallocとaddSubViewは1つの各
- リリースによって、あなたの数を増加し、removeFromSuperviewはい、正確に... addSubView意志1各
0
して、カウントをデクリメントしますビューの参照カウントを1つインクリメントし、removeFromSuperViewも1つ減らします。メモリ管理のいくつかの問題に直面している場合は、ビューの参照カウントをトレースしないようにしてください。
0
はいあなたが正しいですaddSubViewを一つのビューの参照カウントが追加されて増加し、removeFromSuperView減少。あなたはaddSubview
を呼び出した後に追加されているビューを解放する必要があるので、参照カウントを増加させないaddSubview
を呼び出す
0
はaddSubviewのために、それは「このビューは、受信機によって保持されている」と述べApple UIView reference documentを参照してください。
関連する問題
- 1. iOS:MBProgressHUDおよび自動参照カウント(ARC)
- 2. addSubviewとremoveFromSuperviewのヒープ成長
- 3. WPF、EF4、およびリレーション
- 4. PyDict_SetItemStringを使用した参照カウント
- 5. 参照渡しおよびスプライシング
- 6. iOSメモリ管理、UIWindow addSubview:およびタブコントローラ
- 7. System.arraycopy()プリミティブおよびオブジェクト参照を使用したシャローコピーまたはディープコピー
- 8. JavaおよびSQLとOracleを使用した参照テーブルと参照テーブルのリストまたは配列リスト
- 9. viewDidLoad()のaddSubView()およびbringSubViewToFront()は機能しません。
- 10. 参照フィールド/通貨および数量フィールドの参照テーブル
- 11. VisualC 2010、プロジェクト参照、およびインクルードパス
- 12. 写真参照およびキー
- 13. リリース、Dealloc、および自己参照
- 14. XSD Key/KeyRefおよび参照方法
- 15. PHP、配列、および参照
- 16. サイファークエリおよびマルチパスの参照
- 17. Lagomおよびinter-PersistentEntity参照
- 18. 弱ブロック内の参照およびサイクル
- 19. TypeScriptのnewableおよびenumの参照
- 20. JavaおよびC++は値渡しで参照渡しする
- 21. UWPおよびASPNETCOREアプリケーションで参照するために使用するクラスライブラリ
- 22. removefromsuperviewとaddsubviewは表示を変更しない
- 23. ユーザースキーマ内でユーザースキーマを参照する(およびそのメソッドを使用してpopulateメソッドを使用する)? Mongoose
- 24. 参照カウント、ARC
- 25. Powershell:Get-Process、SAMAccount、およびComputerNameを使用してTSを照会しますか?
- 26. Jenkinsfileで変数を設定および参照する方法
- 27. 原子参照カウントと自動参照カウントの違いは何ですか?
- 28. initWithNibNameでaddSubviewを呼び出すと、addSubview呼び出しが実行される前に、viewDidLoad(および他のUIオブジェクトのinits)が起動されます。
- 29. Openwrtツールチェーンを使用してスタティックバイナリをビルドできません:_Unwind_Resumeおよび__gcc_personality_v0への未定義参照
- 30. shared_pointerへの参照の参照カウント
[サブビューをリリースする方法]の複製が可能です(http://stackoverflow.com/questions/9976345/how-to-release-subviews) – jrturton