链接如下:以前只注意使用dispatch_once达到创建单例对象时的线程安全,读了下边这篇文章,才突然发现以前的做法漏洞百出:仅仅保证创建时的线程安全是完全不够的,要保证单例变量读取时的线程安全!http://www.cocoachina.com/swift/20150129/11057.html...
                            
                            
                                分类:
移动开发   时间:
2015-09-05 12:32:12   
                                阅读次数:
178
                             
                    
                        
                            
                            
                                + (id)allocWithZone:(NSZone*)zone{ staticdispatch_once_tonceToken; dispatch_once(&onceToken, ^{ _instance= [superallocWithZone:zone]; }); return_in...
                            
                            
                                分类:
其他好文   时间:
2015-08-19 23:25:00   
                                阅读次数:
127
                             
                    
                        
                            
                            
                                单例工具类的创建1.利用一次性代码static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ });2.不可以通过继承的方式,使子类成为单例。如果继承,会引发如下两个问题 - 如果先创建父类,那么子类创建出来的对象也永远是父类 - ....
                            
                            
                                分类:
其他好文   时间:
2015-08-19 07:04:15   
                                阅读次数:
132
                             
                    
                        
                            
                            
                                要实现单例,关键是要保证类的alloc和init只被调用一次,并且被自身强引用防止释放。
近日读唐巧先生的《iOS开发进阶》,受益匪浅,通过GCD实现单例就是收获之一,下面把这个方法与大家分享。
在GCD中,有一个函数dispatch_once,可以实现代码段的一次性执行,和static修饰的变量赋值的一次性一样,我们结合static和dispatch_once,就可以简单的实现单例。
...
                            
                            
                                分类:
其他好文   时间:
2015-08-17 21:49:04   
                                阅读次数:
156
                             
                    
                        
                            
                            
                                代码:#import #import extern uint64_t dispatch_benchmark(size_t count, void (^block)(void));// pthread_mutex_lockvoid dispatch_once_pthread(dispatch_once...
                            
                            
                                分类:
其他好文   时间:
2015-08-16 18:10:39   
                                阅读次数:
180
                             
                    
                        
                            
                            
                                GCD中几种常见的方法1.代码只被执行一次:(利用这种方式,可以简单的创建一个单例对象)方法dispatch_once(&,^(void){}); 1 - (void)testOne 2 3 { 4 5 static dispatch_once_t onceToken; 6 7 ...
                            
                            
                                分类:
移动开发   时间:
2015-08-08 21:09:33   
                                阅读次数:
125
                             
                    
                        
                            
                            
                                1.Grand Central Dispatch --- GCD单次执行 --- 程序执行期间之执行一次- (IBAction)GCD_onceDidClicked:(UIButton *)sender { static dispatch_once_t onceToken; d...
                            
                            
                                分类:
编程语言   时间:
2015-08-04 22:30:31   
                                阅读次数:
158
                             
                    
                        
                            
                            
                                + (id)sharedRequest{ //利用gcd创建一个单例模式用来上传图片 staticDVHttpConnectRequest*connectRequest =nil; staticdispatch_once_tonceToken; dispatch_once(&onceToken, ^...
                            
                            
                                分类:
其他好文   时间:
2015-07-30 16:51:42   
                                阅读次数:
111
                             
                    
                        
                            
                            
                                自苹果引入了Grand
 Central Dispatch (GCD)(Mac OS 10.6和iOS4.0)后,创建单例又有了新的方法,那就是使用dispatch_once函数,当然,随着演进的进行,还会有更多的更好的方法出现。今天就来简要介绍下如何利用dispatch_once创建单例。
       在开发中我们会用到NSNotificationCenter、NSFileManage...
                            
                            
                                分类:
移动开发   时间:
2015-07-30 11:31:01   
                                阅读次数:
141
                             
                    
                        
                            
                            
                                在写Swift的单例方法之前可以温习一下Objective-C中单例的写法:1 + (instancetype)sharedSingleton{2 static id instance;3 4 static dispatch_once_t onceToken;5 di...
                            
                            
                                分类:
编程语言   时间:
2015-07-29 13:50:29   
                                阅读次数:
115