原因:
一、首先简述一下 Userdefault(介绍使用了该作者的文章)
1.适合存储轻量级的本地数据。
比如用户id 用户的登录token什么的 这种比较短小的数据
2.NSUserDefaults支持的数据格式有:NSNumber、NSData、NSDate、NSString、NSArray、NSDictionary、BOOL。
3.以键值对的形式进行存储。
4.存储时间为整体应用程序的存储时间,如果想需要删除,需要删除整体应用程序。
因为存储的是简单类型或者不可变存储容器,这里如果需要进行数据不在其中类型中就会报错。在开发过程中需要进行存储一些图片数据,又不想使用数据库,userdefault无疑是一个很好的选择(不建议存储过多数据--大量数据还是建议使用FMDB或者CoreData)
⚠️ 存储声明的时候因为是动态的,先声明再调用,声明存储的时候不会出现异常提示,但执行的时候会出现 --断言--(因为存储对象在这里编译是nil)