iOS 开发之 单例
2015-09-11 14:53
363 查看
一、单例
单例设计模式确保对于一个给定的类只有一个实例存在,这个实例有一个全局唯一的访问点。它通常采用懒加载的方式在第一次用到实例的时候再去创建它。单例,从表面上看,就是只初始化一次的意思
1、我们先创建一个类 Animal
2、在.h文件中创建单例的方法
+ (id)defaultManager;
3、在.m文件中实现单例的方法
#import "Animal.h"
//static 告诉系统
不要再创建这个对象了,这个一个静态变量
static Animal *animal = nil;
@implementation Animal
+ (id)defaultManager
{
// 保证只会创建一次的谓词(条件)
static dispatch_once_t onceToken;
// 保证 在多线程里面 对象只初始化一次
dispatch_once(&onceToken, ^{
animal = [[Animal alloc]init];
});
return animal;
}
@end
4、当我们要使用这个单例的时候,需要在主函数导入这个类 如:
#import "Animal.h"
Animal *dog = [Animal defaultManager];
dog.name = @"哮天犬";
Animal *cc = [Animal defaultManager];
NSLog(@"%@",cc.name);
单例设计模式确保对于一个给定的类只有一个实例存在,这个实例有一个全局唯一的访问点。它通常采用懒加载的方式在第一次用到实例的时候再去创建它。单例,从表面上看,就是只初始化一次的意思
1、我们先创建一个类 Animal
2、在.h文件中创建单例的方法
+ (id)defaultManager;
3、在.m文件中实现单例的方法
#import "Animal.h"
//static 告诉系统
不要再创建这个对象了,这个一个静态变量
static Animal *animal = nil;
@implementation Animal
+ (id)defaultManager
{
// 保证只会创建一次的谓词(条件)
static dispatch_once_t onceToken;
// 保证 在多线程里面 对象只初始化一次
dispatch_once(&onceToken, ^{
animal = [[Animal alloc]init];
});
return animal;
}
@end
4、当我们要使用这个单例的时候,需要在主函数导入这个类 如:
#import "Animal.h"
Animal *dog = [Animal defaultManager];
dog.name = @"哮天犬";
Animal *cc = [Animal defaultManager];
NSLog(@"%@",cc.name);
相关文章推荐
- iOS生成二维码
- 在AMD的WIN7上搭建IOS开发环境(mac 10.6.8 + xcode 4.2)
- iOS切图尺寸
- iOS Monkey工具初探
- iOS 各种控件默认高度(图示)
- [iOS学习]for循环讲解举例1-100输出7的倍数
- iOS 定时器(NSTimer)基本使用方法
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- iOS-转盘
- iOS_placeholder 设置
- iOS-心跳
- ios-时钟
- iOS ScrollView
- iOS – NSLog、UncaughtException日志保存到文件
- ios开发之简单实现loading动画效果
- IOS开发之使用Speex格式实现简单的语音聊天功能(二)
- IOS开发之使用Speex格式实现简单的语音聊天功能(一)
- ios开发者账号申请流程
- IOS打开照相机与本地相册选择图片
- IOS多线程的开发