在Xcode/Objective C中:是否有可以強制訪問全局變量的語法。我注意到一個類變量默默地隱藏任何全局變量。看例子。不建議這是一個好主意,但只是好奇。訪問全局變量
int someVariable = 56;
@implementation Example {
int someVariable;
}
- (void)print {
printf("Var=%i\n", someVariable);
}
在Xcode/Objective C中:是否有可以強制訪問全局變量的語法。我注意到一個類變量默默地隱藏任何全局變量。看例子。不建議這是一個好主意,但只是好奇。訪問全局變量
int someVariable = 56;
@implementation Example {
int someVariable;
}
- (void)print {
printf("Var=%i\n", someVariable);
}
蘋果和大多數的Objective-C開發人員使用的約定是大寫全局名稱,如果該項目使用的前綴,前綴他們。因此,例如:
int SomeVariable = 56;
或
int XYZSomeVariable = 56;
這樣,你的全局名稱可以從不與實例變量(不類變量,順便名稱衝突 - 有沒有這樣的事情Objective-C),局部變量或參數,只要您遵守約定的另一半:本地名稱始終以小寫字母開頭。
編輯
我還要提到的是有在Objective-C的長期慣例前面加上下劃線,這也將有助於避免此類問題的實例變量名。實際上,LLVM 4.0自動合成功能現在會自動合成具有聲明屬性的下劃線前綴的ivars,除非您告訴它不要。因此,舉例來說,如果你已經宣佈的實例變量在您的示例如下:
@implementation Example
{
int _someVariable;
}
...伊娃不可能陰影全局變量。
而且,只需使用'-Wshadow' ... – Macmade 2012-10-02 23:30:09
使用'-Wshadow'警告標誌通常是一件好事...然後這種東西不會再*沉默*了。 – Macmade 2012-10-02 23:29:33