自定义单例宏

新建Singleton.h的头文件
内容如下:

// @interface
#define singleton_interface(className) \
+ (className *)shared##className;


// @implementation
#define singleton_implementation(className) \
static className *_instance; \
+ (id)allocWithZone:(NSZone *)zone \
{ \
    static dispatch_once_t onceToken; \
    dispatch_once(&onceToken, ^{ \
        _instance = [super allocWithZone:zone]; \
    }); \
    return _instance; \
} \
+ (className *)shared##className \
{ \
    static dispatch_once_t onceToken; \
    dispatch_once(&onceToken, ^{ \
        _instance = [[self alloc] init]; \
    }); \
    return _instance; \
}

使用方法
先导入Singleton.h的头文件

//
//  OpenHABWiFi.h
//  openHAB
//
//  Created by XMYY-19 on 2018/1/18.
//  Copyright © 2018年 openHAB e.V. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Singleton.h"

/**
    WiFi相关的功能
 */
@interface OpenHABWiFi : NSObject


// 单例模式
singleton_interface(OpenHABWiFi)

/**
    开始监听WiFi的变化
 */
- (void)starListeningWiFiChange;


/**
    停止监听WiFi的变化
 */
- (void)stopListeningWiFiChange;

@end

实现文件

//
//  OpenHABWiFi.m
//  openHAB
//
//  Created by XMYY-19 on 2018/1/18.
//  Copyright © 2018年 openHAB e.V. All rights reserved.
//

#import "OpenHABWiFi.h"

@implementation OpenHABWiFi


singleton_implementation(OpenHABWiFi)

// 单例模式模式初始化内容
-(instancetype)init
{
    if (self = [super init]) {
        
    }
    
    return self;
}

- (void)starListeningWiFiChange{
  
}

- (void)stopListeningWiFiChange{
  
}
@end

在其他类中的使用
先导入头文件,再按照如下方法使用

        [[OpenHABWiFi sharedOpenHABWiFi] startSSDP];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一. Java基础部分.................................................
    wy_sure阅读 3,840评论 0 11
  • 【转载】该作者原文链接https://juejin.im/post/5cb067676fb9a0688360f98...
    布丶Ding阅读 712评论 -1 1
  • JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以...
    yangkg阅读 679评论 0 1
  • 1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标...
    michaelgong阅读 853评论 0 1
  • 昨日闲来无趣,随意找了个电影消遣,却不知这随意的消遣,却那么的沉重而难过。 《何以为家》又译《 迦百农》,但我...
    啊呦_e9fe阅读 100评论 0 1