• iOS开发简记(5):设备唯一标识与全局变量


    这里记录两个iOS开发中经常用到的知识点,一个是唯一标识,一个是全局变量。

    (1)唯一标识

    唯一标识一台设备(比如iPhone、iPad等)是一个基本的实现与业务上的需求,因为这个唯一标识在许多场景都需要使用到,比如用来统计(日活、总用户数等),再比如用作默认的账号,等等。

    udid,曾经是唯一标识的首选,比如这样取得:

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

    但是,udid已经被苹果拒绝使用,所以这个不是小程的选择。同样,mac地址,也是被苹果封杀的。

    其它的办法,比如IDFA、IDFV、UUID,都有各自的缺陷,但并不意味不能使用–可以组合起来,并结合keychain来使用,从而尽可能规避出现的缺陷。

    这样的方案已经有人实现,比如这个项目:
    https://github.com/herody/UQIDDemo

    引用以上这个项目UQID目录的文件,即可获取设备的唯一标识,比如这样使用:

    (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中这样定义:

    在globalvar.m中这样定义:

    之后,就可以在任何地方使用这些全局变量–通过单例函数来使用即可,比如这样:

    感谢各位的关注,后面我会把IOS客户端源码、API源码呈献给大家,完整的示例大家可以暂时到AppStore下载安装“知音”。

  • 相关阅读:
    Delphi StrUtils-字符串函数RightStr、MidStr、LeftStr
    Delphi 错误:Could not convert variant to type(Null) into type (String)
    Delphi Variants-VarIsEmpty、VarIsNull 判断Variant变量是否为空、是否包含Null值
    Python使用openpyxl读写excel文件
    CentOS7设置为局域网固定ip
    Linux下ps aux命令中STAT的参数含义(转)
    Python生成8位随机字符串的方法分析
    php源码加密方法详解
    普通程序员 与 大牛 的区别 ???
    开始记录前端学习过程中的点点滴滴
  • 原文地址:https://www.cnblogs.com/jonlan/p/9999660.html
Copyright © 2020-2023  润新知