在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前者其实是NSObject都可以调用的KVC方法,后者才是NSUserDefaults的实例方法; 这里参数的类型是nullable id,但是我建议你在传null的时候慎重考虑,否则你的应用就可能面临闪退! 个人认为,任何高级语言里面使用null作为参数传递的时候,都应该万分小心!
前者其实是NSObject都可以调用的KVC方法,后者才是UserDefaults的实例方法;
尽管你也可以使用KVC方法来设置UserDefaults里的值,但是我建议你最好不要这样做! removes the value if nil is passed as the value UserDefaults的实例方法可以让你任意使用null, 然而如果你用KVC方法来设置UserDefaults的值为null,这时候就会有异常产生! 我们知道异常在iOS开发中不像Error那么致命,异常产生时会出现一些奇妙的问题,比如CPU占用率飙高。 如果仅仅是飙高一点点那没啥,如果是持续飙高,那么其他的线程可能会饿死,APP也极有可能闪退!
所以,在使用名称极其相似的API的时候,一定要谨慎! 传递的参数有可能为null的时候,也要谨慎!
顺便搜了一下OC和Swift混编的坑,真的蛮多的! 比如这个KVC的坑。
Ficow原创,转载请注明出处:http://www.cnblogs.com/ficow/p/7265162.html |
请发表评论