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

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

(1)唯一標識

唯一標識一臺設備(比如iPhone、iPad等)是一個基本的實現與業務上的需求,因爲這個唯一標識在許多場景都需要使用到,比如用來統計(日活、總用戶數等),再比如用作默認的賬號,等等。

udid,曾經是唯一標識的首選,比如這樣取得:

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

但是,udid已經被蘋果拒絕使用,所以這個不是小程的選擇。同樣,mac地址,也是被蘋果封殺的。

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

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

引用以上這個項目UQID目錄的文件,即可獲取設備的唯一標識,比如這樣使用:
quid的使用

(2)全局變量

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

全局變量的設計,一般有兩個辦法。

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

@property (strong, nonatomic) UIWindow *window;
@property (nonatomic, assign)BOOL firstrun;

然後,在任何地方,都可以訪問AppDelegate,比如:

AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];
myDelegate.firstrun = YES;

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

在globalvar.m中這樣定義:
globalvar.m

之後,就可以在任何地方使用這些全局變量–通過單例函數來使用即可,比如這樣:
使用全局變量-單例


hello

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章