zoukankan      html  css  js  c++  java
  • iOS-设计模式之单例

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

    实现过程:

    //  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

  • 相关阅读:
    hibernate入门
    struts文件上传
    Struts的增删改查
    struts入门
    Maven配置以及环境搭配
    layui增删改查
    easyui三
    A
    C. Permutation Cycle
    E
  • 原文地址:https://www.cnblogs.com/zhang-kiwi/p/5018022.html
Copyright © 2011-2022 走看看