iOS開發簡記(5):設備惟一標識與全局變量

這裏記錄兩個iOS開發中常常用到的知識點,一個是惟一標識,一個是全局變量。git

(1)惟一標識

惟一標識一臺設備(好比iPhone、iPad等)是一個基本的實現與業務上的需求,由於這個惟一標識在許多場景都須要使用到,好比用來統計(日活、總用戶數等),再好比用做默認的帳號,等等。github

udid,曾經是惟一標識的首選,好比這樣取得:函數

NSString *UDID = [[UIDevice currentDevice] uniqueIdentifier];atom

可是,udid已經被蘋果拒絕使用,因此這個不是小程的選擇。一樣,mac地址,也是被蘋果封殺的。spa

其它的辦法,好比IDFA、IDFV、UUID,都有各自的缺陷,但並不意味不能使用–能夠組合起來,並結合keychain來使用,從而儘量規避出現的缺陷。設計

這樣的方案已經有人實現,好比這個項目:
https://github.com/herody/UQIDDemo開發

引用以上這個項目UQID目錄的文件,便可獲取設備的惟一標識,好比這樣使用:
同步

(2)全局變量

爲了便利與信息同步,項目中常常須要使用一些全局變量。源碼

全局變量的設計,通常有兩個辦法。qt

辦法一,在AppDelegate.h中定義全局變量,也就是在類AppDelegate中增長全局變量,好比:

@property (strong, nonatomic) UIWindow *window;

@property (nonatomic, assign)BOOL firstrun;

而後,在任何地方,均可以訪問AppDelegate,好比:

AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];

myDelegate.firstrun = YES;

辦法二,使用新的文件,定義一個單例的類,好比在globalvar.h中這樣定義:

在globalvar.m中這樣定義:

以後,就能夠在任何地方使用這些全局變量–經過單例函數來使用便可,好比這樣:

感謝各位的關注,後面我會把IOS客戶端源碼、API源碼呈獻給你們,完整的示例你們能夠暫時到AppStore下載安裝「知音」。

相關文章
相關標籤/搜索