0
// in ClassA.h
static NSString *globalStr = @"HelloWorld";
@interface ClassA
...
@end
// in ClassB.h
#include "ClassA.h"
// in ClassB.m
...
NSLog(@"The global string: %@", globalStr);
...
在C++中,「static」應該表示變量或函數具有內部鏈接。
但是在這種情況下它被用來共享變量,沒有static關鍵字就會發生錯誤。Obj-C中的靜態全局變量?
我很困惑,有人能告訴我背後的概念嗎?
謝謝!
它有助於記住,頭被*逐字複製*到它們包含的文件中。您不會與導入標題的其他文件「共享」變量 - 標題導致所有這些文件都包含聲明「static NSString * globalStr = @」HelloWorld「' 。 – Chuck 2010-06-16 17:33:55
我想我應該補充說,你會有相同的錯誤在C++ .... – 2010-06-16 17:51:55
謝謝,但我真的不知道爲什麼有一個「重複的符號」。你能再解釋一下嗎,再次感謝。 – 2010-06-19 09:06:16