我正在處理一本書中的代碼清單,它有一對變量(特別是NSString *)在@implementation而不是@interface中聲明和初始化,但在任何方法體之外。我以前沒有看到過這個,我想知道這在範圍內有什麼不同,等等。在@implementation中聲明的變量
我已經快速瀏覽了Objective C編程語言,但是我看不到任何描述它有什麼影響。裏面@implementation聲明
感謝
安迪
我正在處理一本書中的代碼清單,它有一對變量(特別是NSString *)在@implementation而不是@interface中聲明和初始化,但在任何方法體之外。我以前沒有看到過這個,我想知道這在範圍內有什麼不同,等等。在@implementation中聲明的變量
我已經快速瀏覽了Objective C編程語言,但是我看不到任何描述它有什麼影響。裏面@implementation聲明
感謝
安迪
變量具有全局範圍。
如果您將它們聲明爲「靜態」,則它們只能從相同源文件中的方法中看到。
所以:
@implementation MyClass
NSString *myString; // global scope, and accessible by all code in your project
或
@implementation MyClass
static NSString *myString; // global scope, but only accessible by code
// in this source file
將您發佈的代碼示例,顯示你在說什麼? – kubi 2010-06-17 12:42:34