这里记录两个iOS开发中常常用到的知识点,一个是惟一标识,一个是全局变量。git
惟一标识一台设备(好比iPhone、iPad等)是一个基本的实现与业务上的需求,由于这个惟一标识在许多场景都须要使用到,好比用来统计(日活、总用户数等),再好比用做默认的帐号,等等。github
udid,曾经是惟一标识的首选,好比这样取得:函数
NSString *UDID = [[UIDevice currentDevice] uniqueIdentifier];atom
可是,udid已经被苹果拒绝使用,因此这个不是小程的选择。一样,mac地址,也是被苹果封杀的。spa
其它的办法,好比IDFA、IDFV、UUID,都有各自的缺陷,但并不意味不能使用–能够组合起来,并结合keychain来使用,从而尽量规避出现的缺陷。设计
这样的方案已经有人实现,好比这个项目:
https://github.com/herody/UQIDDemo开发
引用以上这个项目UQID目录的文件,便可获取设备的惟一标识,好比这样使用:同步
为了便利与信息同步,项目中常常须要使用一些全局变量。源码
全局变量的设计,通常有两个办法。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下载安装“知音”。