2012-03-30 54 views
0

某些Obj-C指令在擴展中使用變量,並將它們作爲ivar。
請有人解釋一下這個區別嗎? (更好地爲這種做法)XCode類變量

@interface myClass 
{ 
int myVar; 
} 

VS

@interface myClass(){ 
int myVar; 
} 

這是特別針對IOS斯坦福大學在線課程的情況。 我不明白他們爲什麼會這樣做,而不是在界面中使用@private(非擴展名)。

謝謝!

回答

3

據我所知,當你讓某人訪問你寫的API時,你需要給他們.h文件。因此,私人的愛人仍然可以被不應該關心他們的人看到。當你將它們放入.m文件時,它們完全隱藏並且非常私密。

+2

這裏的關鍵詞是:_encapsulation_。 – Cyrille 2012-03-30 06:49:15

+0

當您使用具有相同類型和名稱的屬性時,它們將變爲公共。現在我知道的唯一合適的情況是在.m文件中聲明靜態隱藏變量 – Gargo 2012-03-30 07:14:30