码迷,mamicode.com
首页 > 移动开发 > 详细

iOS-设计模式之单例

时间:2015-12-04 01:02:16      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

单例模式就是一个类在整个程序的生命周期中只创建一个实例

实现过程:

//  Singclass.h
#import <Foundation/Foundation.h>
@interface Singclass : NSObject
@property(nonatomic,strong)NSString *name;
+ (id)share_id;
@end


//  Singclass.m
#import "Singclass.h"
@implementation Singclass
+ (id)share_id
{
    static Singclass *singClass = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        singClass = [[Singclass alloc]init];
    });
    return singClass;
}
@end

该方法采用的时GCD技术,dispatch_once是GCD提供的函数,它在整个程序的生命周期中只执行一次代码块中的语句,用此种方法创建的单例会自动线程同步,在多线程下是安全的。

使用单例的目的:

1,共享资源(属性)

2,共享方法

3,减少类的多次创建(优化性能)

系统单例:

比如UIApplication, NSFileManager,NSBundle, NSNotificationCenter,  NSUserDefaults.

 

 

本文GitHu地址https://github.com/zhangkiwi/iOS_SN_Singclass

iOS-设计模式之单例

标签:

原文地址:http://www.cnblogs.com/zhang-kiwi/p/5018022.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!