iOS 定义单例的宏

#undef  AS_SINGLETON  
    #define AS_SINGLETON( __class ) \  
            + (__class *)sharedInstance;  
          
        #undef  DEF_SINGLETON  
        #define DEF_SINGLETON( __class ) \  
                + (__class *)sharedInstance \  
                { \  
                    static dispatch_once_t once; \  
                    static __class * __singleton__; \  
                   dispatch_once( &once, ^{ __singleton__ = [[__class alloc] init]; } ); \  
                    return __singleton__; \  
            }  

这些都是网上查找的代码。

时间: 2024-10-05 12:42:37

iOS 定义单例的宏的相关文章

ios开发-单例抽取宏

在日常开发中,我们经常会用到宏,宏本质上就是在编译的时候,替换代码 示例1: //##可以用于拼接宏中的变量名 #define demo(xxx)   int##xxx" main(){ int intA = 10; int intB = 20; NSLog(@"======%d",demo(A) + demo(B)); }

IOS 定位 单例

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 + (SCLocationController *)sharedController {      static SCLocationController *sharedController = nil;     

Swift定义单例的三种方式

第一种:使用GCD. 自定义一个class继承你要继承的类, 定义一个静态可选变量, 声明一个dispatch_once_t,并赋初始值0(0代表还没有被实例过, 如果被实例过了其值始终是1),剩下的和OC定义单例类似 1 class NetWorkTools: AFHTTPSessionManager { 2 3 //MARK: - 单例 4 static var instance: NetWorkTools? 5 static var once_t: dispatch_once_t = 0

单例的宏定义实现-07-GCD

1 // 2 // LYHSingleTon.h 3 // 07-单例的宏定义实现 4 // 5 // Created by mac on 16/4/22. 6 // Copyright © 2016年 mac. All rights reserved. 7 // 8 9 #ifndef LYHSingleTon_h 10 #define LYHSingleTon_h 11 12 // .h文件 13 14 #define LYHSingleTonH + (instancetype)shared

OC中的单例设计模式及单例的宏抽取

1 // 在一个对象需要重复使用,并且很频繁时,可以对对象使用单例设计模式 2 // 单例的设计其实就是多alloc内部的allocWithZone下手,重写该方法 3 4 #pragma Person.h文件 5 6 #import <Foundation/Foundation.h> 7 @interface Person : NSObject <NSCopying,NSMutableCopying> 8 + (instancetype)sharePerson; // 给类提供一

IOS多线程--单例

单例 iOS中,如何实现一个真正的单例 单例问题最担心的就是线程安全,因为它常常被多个控制器同时访问 1.保证allocWithZone:方法是线程安全的,当调用super方法的时候使用dispatch_once方法锁住 2.保证单例实现方法也使用dispatch_once方法锁住创建对象的过程 3.dispatch_once 被广泛用在单例,缓存等代码中,用来保证只执行一次 在单线程中没有意义,但是在多线程中,其低负载,高的可依赖性,接口简单等,赢得五星好评 static dispatch_o

iOS的单例UIApplication总结及一些常见方法

UIApplication是一个应用程序的象征并且是一个单例对象 方法:openURL(打电话,发短信) // NSURL 资源唯一路径的地址// 规范:    协议头://主机地址/资源路径// 网络资源: http://www.baidu.com/image/123.png// 本地资源: file:///user/desktop/image/321.png // 状态栏交给Application管理(在系统info.plist文件中添加下面这条命令)View controller-base

ios之单例类的创建实现与使用技巧总结

首先讲下单例类能够实现的功能,也是在项目中经常可以用到的.因为单例是全局哪里要用直接调用就行非常方便简单,一般我们可以用单例来作对用户信息的存储,其次单例可以做成购物车之类的页面等等.当然单例最大的优势个人感觉就是对数据的存储和读取非常方便,就可以解决页面之间传值困难的问题.简单讲下怎样用单例对数据传输吧,把需要的数据都定义成属性,当需要存储的时候直接调用存储就行,要用的时候把它调出使用就行了这里不做过多描述了. 下面用个简单地demo来详细介绍实现过程   (工程采用非ARC模式) xcode

iOS:创建单例对象的两种方式

单例模式:创建单例对象的两种方式 方式一:iOS4版本之前 static SingleClassManager *singleManager = nil; +(SingleClassManager*)sharedManager { @synchronized(self)  //同步加锁,在多线程中使用,可以使线程安全 { if(singleManager == nil) { singleManager = [[SingleClassManager alloc]init]; } } return