Xcode/Objective C:グローバル変数に強制的にアクセスできる構文はありますか?私はクラス変数がサイレントにがどのグローバル変数も隠していることに気付きました。例を参照してください。良いアイデアだと思っているのではなく、好奇心が強い。グローバル変数へのアクセス
2
A
答えて
5
Appleと大部分のObjective-C開発者が使用する慣例は、グローバル名を大文字にすることです。例えばので:あなたのグローバル名は、インスタンス変数の名前経由で(ないクラス変数、と衝突することはできません
int SomeVariable = 56;
または
int XYZSomeVariable = 56;
その方法 - には、そのような事はありませんObjective-C)、ローカル変数、または引数を使用することができます。ローカル名は常に小文字で始まります。
編集
私はまた、問題を回避するのに役立つだろう、下線付きインスタンス変数名を、先頭に付加するのObjective-Cでの長年の慣習があることを言及する必要があります。実際には、LLVM 4.0の自動合成機能は、宣言されたプロパティのアンダースコアの先頭にivarsを自動的に合成します。たとえば、次のようにインスタンス変数を宣言したとします。
@implementation Example
{
int _someVariable;
}
... ivarはグローバル変数をシャドーできませんでした。
+0
また、単に '-Wshadow'を使うと... – Macmade
通常、 '-Wshadow'警告フラグを使うのは良いことです。この種のものは* silent *になりません。 – Macmade