iOS 单例对象创建
来源:互联网 发布:移动互联网数据 编辑:程序博客网 时间:2024/04/28 23:55
// Created by 刘俊杰 on 16/6/20.
// Copyright © 2016年刘俊杰. All rights reserved.
//
#import "SingleManger.h"
static SingleManger * single;
@implementation SingleManger
//第一种写法,不用GCD,比较简单
+(SingleManger *)shareSingle
{
if (!single) {
single = [[selfallocWithZone:NULL]init];
}
return single;
}
}
//还有一种大家比较喜欢用的写法
+(SingleManger *)shareSingle
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
single = [[SingleMangeralloc]init];
});
return single;
}
/**
* dispatch_once(&onceToken, ^{
});
这个函数是专为单例而生,保证整个应用程序生命周期中某段代码只被执行一次block对象
*/
//还有一种比较有争议的写法
+(SingleManger *)shareSingle
{
static SingleManger * single;
if (single == nil) {
single = [[super allocWithZone:NULL] init];
}
return single;
}
+(id) allocWithZone:(struct_NSZone *)zone
{
return [SingleMangershareSingle] ;
}
-(id) copyWithZone:(struct_NSZone *)zone
{
return [SingleMangershareSingle] ;
}
//这种方法是防止我们通过不同的途径得到不同的对象(alloc copy),但不被大家所推荐,具体原因大家可以去看官方文档(主要是我自己也只是了解个大概,汗颜...........)
- iOS 单例对象创建
- iOS 如何创建单例对象
- iOS 如何创建单例对象
- iOS 如何创建单例对象
- iOS 如何创建单例对象
- 单例对象创建
- iOS防止单例对象被重复创建
- iOS 创建单例
- iOS 单例创建
- iOS 创建单例
- iOS单例创建
- iOS 创建单例
- iOS 创建单例
- 单例对象的创建
- iOS - ARC创建单例
- iOS 如何创建单例
- iOS OC 创建单例
- iOS中创建单例
- 详解 Android 性能优化
- 【杭电oj】2064 - 汉诺塔III(递归,汉诺塔)
- 模式识别(Pattern Recognition)学习笔记(三十三)-- Boosting方法之AdaBoost
- android线程管理
- 【ppt基础教程】教你用PowerPoint轻松实现板书效果
- iOS 单例对象创建
- 2016长城信息杯中国大学生程序设计竞赛中南邀请赛 xtu 1252 Defense Tower
- android HttpURLConnection网络请求数据
- Java算法 归并排序
- HDU 3518 后缀数组
- Android-扫二维码和生成二维码
- CentOS常用操作(CentOS 7X)
- 2016长城信息杯中国大学生程序设计竞赛中南邀请赛 xtu 1246 Heartstone
- 并发同步