设计模式IOS篇-第一章:单列模式

现在先来看看例子:

//Singleton.h
@interface Singleton : NSObject

+ (Singleton*)sharedManager;
@property (nonatomic ,strong) NSString* singletonData; 

@end
//Singleton.m
#import "Singleton.h"
@implementation Singleton

@synthesize singletonData = _singletonData; 
static Singleton *sharedManager = nil;

+ (Singleton*)sharedManager
{
    static dispatch_once_t once;
    dispatch_once(&once, ^{
        sharedManager = [[self alloc] init];
    });
    return sharedManager;
}

@end

 

在例子中,dispath_once_t是有GCD(Grand central Dispatch)提供,使在整个生命周期中,包含在内的代码块只执行一次,dispath_once会记录是否代码已经被执行过

下面是可在Cocoa Touch中参考的一些单列模式的类:

  • UIApplication
  • UIAccelerometer
  • NSUserDefaults
  • NSNotificationCenter
posted @ 2016-03-02 13:06  长命百岁  阅读(130)  评论(0编辑  收藏  举报