2010-06-17 60 views
3

我正在處理一本書中的代碼清單,它有一對變量(特別是NSString *)在@implementation而不是@interface中聲明和初始化,但在任何方法體之外。我以前沒有看到過這個,我想知道這在範圍內有什麼不同,等等。在@implementation中聲明的變量

我已經快速瀏覽了Objective C編程語言,但是我看不到任何描述它有什麼影響。裏面@implementation聲明

感謝

安迪

+0

將您發佈的代碼示例,顯示你在說什麼? – kubi 2010-06-17 12:42:34

回答

7

變量具有全局範圍。

如果您將它們聲明爲「靜態」,則它們只能從相同源文件中的方法中看到。

所以:

@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 
+0

太棒了,謝謝! – Andy 2010-06-17 13:16:13

+0

我正在尋找答案,並意識到,如果它的手鐲,那麼它實際上是伊娃。 請參閱http://stackoverflow.com/questions/6785765/instance-variables-declared-in-objc-implementation-file – huggie 2012-05-22 08:01:04

+0

你確定嗎?我無法讓它工作。也許你提出了錯誤的意見 – tGilani 2012-10-24 05:11:41