int helloness;
@interface test : NSObject
@end
@interface test : NSObject{
int helloness;
}
@end
難道我明白,下面是真實和聲明變量上述兩個區塊之間的唯一有意義的差異:
- 在這兩個區塊中,執行
test.m
可以在內部使用helloness
變量,如第一個塊中的ivar - ,
helloness
將存在,在第二塊
在第一塊進口這.h
但在其他公開的,只有test.m
任何類,這是技術上的什麼被認爲是在任何類中的「全局變量」是進口這將有權訪問helloness
的相同內容?
如果多個頭文件有helloness
的聲明並將其全部導入,會發生什麼情況?
這個類似,認爲這是實現:
@implementation AClass
int food=5;
這裏,food
的作用就像一個內部伊娃,即使它不以任何@interface
聲明?
,這就好像我在它之前添加了'static',在另一個單詞,一個類變量? – johnbakers 2012-03-16 06:07:37
不完全 - 我遺漏了一些東西。使用'static',它的行爲就像是一個「類變量」:只有在同一個文件中才能看到。如果沒有'static',聲明對其他文件是不可見的,但*符號*是......我認爲他們可以用'extern'得到它,更重要的是,如果你有'食物'在其他文件中。 (在實現文件中沒有聲明'static'的全局變量並不是我們經常看到的東西,而且可能有充分的理由。) – rickster 2012-03-16 06:33:27