Objective-Cクラスで静的変数を作成するにはどうすればよいですか?私はプライベート変数のための私のヘッダーファイルで@privateを使用することに精通していますが、私は静的変数にアクセスする静的メソッドを作成しようとしています。この静的変数をヘッダファイルにどのように宣言する必要がありますか?Objective-CスタティックのModifers?
答えて
Objective-Cには静的なクラス変数はありません。ただし、モジュール静的変数をC言語と同様に作成できます。静的変数をプライベートにするには:
//MyClass.m
static int MyStatic;
@implementation MyClass
@end
は、MyStatic
モジュールレベルのスコープを指定します。これはちょうどCなので、MyStaticをから見えるようにする方法はありません。カテゴリをMyClassに公開し、extern
宣言で公開することはできません。静的変数は実質的にグローバル変数なので、これはおそらく良いことです。つまり、MyClassはMyStatic
の存在を隠すために絶対にできるすべてを実行する必要があります。
あなたは、静的変数はパブリックになりたい場合は(あなた本当にはしたくない):[Objective Cの静的クラスレベル変数]の
//MyClass.h
extern int MyStatic;
@interface MyClass {}
@end
//MyClass.m
int MyStatic;
@implementation MyClass
@end
あなたの例では、MyStaticを静的宣言するのを忘れましたか? – Kent
Objective-Cの静的変数は、C(静的変数)の静的変数と同じ規則に従います。静的変数は、ファイルまたは関数のスコープで宣言できますが、インスタンス変数と同様にクラスとの関係はありません。
Objective-Cはこの点でCの後に続くだけです。静的なファイル変数を作成します。あなたの実装(つまり、.mファイル)では、どこにでも宣言を置くことができます(しかし、理想的には、ファイルの最上部のような賢明な場所、または1つの場所でのみアクセスされる場合は関連するメソッドですら)。
このような静的に制御されたアクセスを提供する場合は、メソッドの実装の外側に配置し、クラスメソッドを使用してアクセスします。
- 1. NumberFormatter - ObjectiveC
- 2. ObjectiveCのAMF0パーサー
- 3. ObjectiveCのJSON解析
- 4. ObjectiveC blocks Java equivalent
- 5. iOS ObjectiveC Webservice
- 6. スタティックIBOutlets?
- 7. ObjectiveCのJava同等のデコード
- 8. 糸くずのエラーobjectiveC
- 9. ObjectiveCの静的変数
- 10. スタティックsrc = "" iframeのダイナミックコンティネント
- 11. スタティックhtmlスプリングブートのエラーコード
- 12. スタティック(偽)ランダムジェネレータ
- 13. スタティックHtmlテーブルヘッダーコード
- 14. スタティック・アレイ・ユニティ
- 15. スタティック・レイジー・イニシャライザ
- 16. スタティック変数R
- 17. リフレクションVSスタティックstuff
- 18. スタティックURLチェリーピー
- 19. スタティックAndroid Spinner?
- 20. SSRSスタティック・デート式
- 21. スタティックQRコードリダイレクト
- 22. スタティックvsダイナミックタイプ
- 23. スタティック型Lua
- 24. 左右サイドバー+ tabbarController(IOS Objectivec)
- 25. ObjectiveC /ココアScreencapture /クロスヘッドマウスポインタのセレクタのヘルプ
- 26. ナンシーでスタティックなリンク
- 27. ダイナミックUIとスタティックUI
- 28. スタティックをクリアしてスタティックを収集できません。
- 29. VMスケールセットのVM用スタティックmacaddress
- 30. スタティック変数スニペットの作成
可能重複(http://stackoverflow.com/questions/1063229/objective-c-static-class-level-variables) –