在iPhone開發中,全域變數的幾種使用方法 (
方法1:使用靜態變數 (不推薦)
方法2: 使用singleton pattern (ref link: http://nice.iteye.com/blog/855839)
方法3:把全域變數設定到AppDelegate中 )
在iPhone開發中,使用全域變數有這麼幾種實現方法:
1、 在AppDelegate中聲明並初始化全域變數
然後在需要使用該變數的地方插入如下的代碼:
//取得AppDelegate,在iOS中,AppDelegat被設計成了單例模式
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
appDelegate.Your Variable
2、使用 extern 關鍵字
2.1 建立Constants.h檔案(檔案名稱根據需要自己取),用於存放全域變數;
2.2 在Constants.h中寫入你需要的全域變數名,
例如: NSString *url;//指標類型
int count;//非指標類型
注意:在定義全域變數的時候不能初始化,否則會報錯。
2.3 在需要用到全域變數的檔案中引入此檔案:
#import "Constants.h"
2.4 給全域變數初始化或者賦值:
extern NSString *url;
url = [[NSString alloc] initWithFormat:@"http://www.google.com"];
//指標類型;需要alloc(我試過直接 url = @"www.google.com" 好像也能訪問 )
extern int count;
count = 0;//非指標類型
2.5 使用全域變數:和使用普通變數一樣使用。
方法二:ios 單例全域變數寫法
interface MySingleton : NSObject
{
⇒① NSString *testGlobal;
}
+ (MySingleton *)sharedSingleton;
⇒②@property (nonxxxx,retain) NSString *testGlobal;
@end
@implementation MySingleton
⇒③@synthesize testGlobal;
+ (MySingleton *)sharedSingleton
{
static MySingleton *sharedSingleton;
@synchronized(self)
{
if (!sharedSingleton)
sharedSingleton = [[MySingleton alloc] init];
return sharedSingleton;
}
}
@end
把①、②、③的地方換成你想要的東西,
使用例:
[MySingleton sharedSingleton].testGlobal = @"test";