iOSでは、ヘッダファイルにいくつかのconst変数を入れて、このヘッダファイルをインクルードすることで異なるソースファイルで使用すると、これらの変数のライフサイクルはどうなりますか?これらの変数はいつ割り当てられますか?これらの変数はどこに保存されていますか?ヘッダーファイルの変数、メモリ管理
1
A
答えて
2
あなたが尋ねた:
これらの変数のライフサイクルは何ですか?
ライフサイクルはアプリの寿命です。
これらの変数はいつ割り当てられますか?
アプリが終了するまでリリースされません。
これらの変数はどこに保存されていますか?
プリミティブなデータ型や文字列リテラルについて言えば、スタックではなくヒープではなく、専用の__DATA
セグメントに格納されています。
const
グローバルの実装をヘッダーに入れないでください。ファイルを.m
に入れてください。ファイルへの外部参照のみを.h
ファイルに入れてください。
だから、例えば、あなたの.m
ファイルに次のように置く:置く、あなたの.h
ファイルで、その後、
NSString * const kNotificationName = @"com.domain.app.notification";
そして:
extern NSString * const kNotificationName;
そのように、あなたは一度それを実装しますが、そのヘッダーをインポートするファイルには、そのヘッダーが表示されます。
関連する問題
- 1. メモリ管理とインスタンス変数?
- 2. Pythonの変数のメモリ管理
- 3. iPhoneでの変数のメモリ管理
- 4. (iOS)一時変数のメモリ管理
- 5. cudaの共有メモリと管理対象メモリの変数
- 6. C#(メモリ管理)の配列の管理
- 7. メモリ管理ios
- 8. CFSTRメモリ管理
- 9. メモリ管理addSubview:
- 10. iPhone:メモリ管理
- 11. UIViewメモリ管理
- 12. Netbeansメモリ管理
- 13. C#メモリ管理
- 14. CGMutablePathRefメモリ管理
- 15. UITableViewメモリ管理
- 16. アレイ、メモリ管理
- 17. MVC3メモリ管理
- 18. コアデータ - メモリ管理?
- 19. mipsメモリ管理
- 20. CPythonメモリ管理
- 21. iOSメモリ管理
- 22. OSメモリ管理
- 23. @properties - メモリ管理
- 24. AS3 - メモリ管理
- 25. ADBannerViewメモリ管理
- 26. iPhoneメモリ管理
- 27. ヒープスペース - メモリ管理
- 28. Rcppメモリ管理
- 29. 未管理オブジェクトのメモリ管理
- 30. イベントマシンのメモリ管理
これらの2つのアプローチの違いは何ですか? – jokeman
グローバル変数はいつメモリにロードされますか? – jokeman
これらの "2つのアプローチ"の違いについては、定数実装を.mに入れ、ヘッダーに 'extern'参照しか持たないということになっています。違いは、前者のアプローチでは、.hファイルをインポートするすべての.mファイルに新しい定数を作成しようとします(これはリンカを混乱させます)。後者のアプローチでは、実際の定数は1回だけですが、他のコンパイル単位が参照できるように外部参照を提供します。 – Rob