2012-02-13 17 views
2

Xcode/Objective C:グローバル変数に強制的にアクセスできる構文はありますか?私はクラス変数がサイレントにがどのグローバル変数も隠していることに気付きました。例を参照してください。良いアイデアだと思っているのではなく、好奇心が強い。グローバル変数へのアクセス

+0

通常、 '-Wshadow'警告フラグを使うのは良いことです。この種のものは* silent *になりません。 – Macmade

答えて

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

関連する問題