在我们开发的过程中,为了方便会 定义很多宏定义,像systemColor,systemUrl 之类的,如果是在OC开发的项目中不会出现问题,但是现在是在swift开发中,问题就显现出来了。
我的项目中,登录时,帐号,密码,组织机构ID等等其他一些程序中要用到的东西 都是使用UserDefault存储在本地,然后定义一个宏定义取出来,像这个样子 :
(ToolHelper.swift_GetUserDefaults()是封装的UserDefault取数据的方法),这样在程序运行中是不会有问题的;但是如果你退出了,切换了帐号重新登录,问题就来了:SystemUserPWD 它被定义为一个常量,所以它一旦被赋值就不会再改变,这就导致了 存储在本地的数据已经改变了,但是 SystemUserPWD 还是退出登录以前 的数据,程序中一旦用到这个值就会出问题了。
解决办法就是 SystemUserPWD不要定义为一个 常量,而是定义为一个 方法,像这样:
这样每次使用到它的时候 都是现取值就不会出现问题了。