重写美味不用等(1) 单例 --initialize方法调用
2015-12-18 15:06
369 查看
initialize实在一个类第一次发消息前调用,就是说,第一次调用init, 私用方法, 类方法调用之前会调用它,也只调用一次。
.h文件
+ (instancetype)sharedInstance;
.m文件
static DataManager *dataManager;
+ (instancetype)sharedInstance{
return
dataManager;
}
+ (void)initialize{
if (!dataManager) {
dataManager = [[DataManager
alloc]init];
}
}
还有一种宏定义写法
//
// Singelton.h
// NoWait
//
// Created by liu nian on 15/3/30.
// Copyright (c) 2015年 Shanghai Puscene Information Technology Co.,Ltd. All rights reserved.
//
#ifndef NoWait_Singelton_h
#define NoWait_Singelton_h
//http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/nsobject_Class/Reference/Reference.html#//apple_ref/occ/clm/NSObject/initialize
#define SingletonInterface(Class) \
+ (Class *)sharedInstance;
#define SingletonImplementation(Class) \
static Class *__ ## sharedSingleton; \
\
\
+ (void)initialize \
{ \
static BOOL initialized = NO; \
if(!initialized) \
{ \
initialized = YES; \
__ ## sharedSingleton = [[Class alloc] init]; \
} \
} \
\
\
+ (Class *)sharedInstance \
{ \
return __ ## sharedSingleton; \
} \
\
#endif
.h文件
+ (instancetype)sharedInstance;
.m文件
static DataManager *dataManager;
+ (instancetype)sharedInstance{
return
dataManager;
}
+ (void)initialize{
if (!dataManager) {
dataManager = [[DataManager
alloc]init];
}
}
还有一种宏定义写法
//
// Singelton.h
// NoWait
//
// Created by liu nian on 15/3/30.
// Copyright (c) 2015年 Shanghai Puscene Information Technology Co.,Ltd. All rights reserved.
//
#ifndef NoWait_Singelton_h
#define NoWait_Singelton_h
//http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/nsobject_Class/Reference/Reference.html#//apple_ref/occ/clm/NSObject/initialize
#define SingletonInterface(Class) \
+ (Class *)sharedInstance;
#define SingletonImplementation(Class) \
static Class *__ ## sharedSingleton; \
\
\
+ (void)initialize \
{ \
static BOOL initialized = NO; \
if(!initialized) \
{ \
initialized = YES; \
__ ## sharedSingleton = [[Class alloc] init]; \
} \
} \
\
\
+ (Class *)sharedInstance \
{ \
return __ ## sharedSingleton; \
} \
\
#endif
相关文章推荐
- 工作之余学习PHP
- PPI (像素数目)的解释
- MySQL Study之--Index的强制使用和忽略
- 建立动态规划数学模型的步骤
- Tomcat在Linux上的安装与配置
- SmartConfig
- taglist
- 南邮编程在线编程题十一:指针形参的使用,找数组中的最大最小元素值
- 利用xcode怎么编辑html并且运行html
- Js apply()使用详解
- C++中的容器类详解
- Win10怎么查看磁盘空间使用情况?Win10查看系统磁盘空间使用情况的方法
- 使用Python编写简单的端口扫描器的实例分享
- CSS选择器和jQuery选择器的区别与联系之一
- C语言之预处理
- 经典算法试题及答案
- 使用python爬取豆瓣电影图片(-)
- 自定义View的状态 (Checkable接口引发的联想)
- 测试本机JVM支持的最大内存
- Flatten Binary Tree to Linked List