iOS中的单例到底怎么写?
2017-03-27 20:05
295 查看
什么是单例模式
自行百度。单例模式的好处
自行百度。重点! iOS中的单例到底怎么写?
无争议的部分,静态变量+dispatch once(线程安全)争议部分,alloc/copyWithZone/mutableCopyWithZone的重写
既然是在Cocoa下,当然要学习苹果怎么实现,最大限度保持自己的单例和苹果的单例相似。
于是乎,我就闲的蛋疼利用[NSUserDefault standardUserDefaults]来检测一下 是否需要实现这些争议的方法?
要不要重写copyWithZone?
NSUserDefaults *copyDefaults = [[NSUserDefaults standardUserDefaults] copy];
-[NSUserDefaults copyWithZone:]: unrecognized selector sent to instance 0x60800005ed50 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSUserDefaults copyWithZone:]: unrecognized selector sent to instance 0x60800005ed50'
不要!
要不要重写mutableCopyWithZone?
NSUserDefaults *copyDefaults = [[NSUserDefaults standardUserDefaults] mutableCopy];
-[NSUserDefaults mutableCopyWithZone:]: unrecognized selector sent to instance 0x60800004e220 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSUserDefaults mutableCopyWithZone:]: unrecognized selector sent to instance 0x60800004e220'
不要!
要不要重写alloc?
NSUserDefaults *defaults = [[NSUserDefaults alloc] init]; NSLog(@"standardUserDefaults:%@ \n allocUserDefaults%@ ", [NSUserDefaults standardUserDefaults], defaults);
standardUserDefaults:<NSUserDefaults: 0x60000005cc50> allocUserDefaults<NSUserDefaults: 0x60000005fbc0>
不要!
少写点代码多好呢!
相关文章推荐
- 【iOS】微信小程序打开APP到底是怎么回事?
- IOS开发的时候到底用户体验该怎么来做呢?
- ios 怎么让tableView滑动最底端 解决tableView滑不到底
- 到底该怎么翻译技术原著
- 错误:数据提供程序或其他服务返回E_FAIL状态 到底怎么回事呢?
- 2007-01-15 到底应该怎么办
- 20060925: 这魔兽世界到底怎么了
- 2006-4-23 我到底该怎么办?
- 《IT人,到底你怎么了》
- Java的表示层,到底该怎么办?
- 公司到底是怎么看我们的……
- 一个程序员人生路到底该怎么走~!
- acegi,里面到底是怎么走的?
- 到底该怎么工作?——浅谈工作效率
- 中国经济到底怎么了?
- C++中的虚函数到底怎么实现的?
- blog到底怎么了。
- Blog到底怎么了?
- 公司到底是怎么看我们的……
- 当网络管理员遭遇网络不通到底该怎么办