码迷,mamicode.com
首页 > 移动开发 > 详细

iOs 单例模式的定义,实现、步骤

时间:2015-12-20 19:15:44      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

    单例模式就是一个类在系统中最多只有一个实例对象,并通过一个全局的入口对这个实例对象进行访问。

    对于共享的资源,实现多个对象去封装是不必要的,不光占用系统资源,还有可能造成冲突,所以一般使用单例模式。

#import "DSSingletonObject.h"

@implementation DSSingletonObject

+ (DSSingletonObject *)defaultObject {
    static DSSingletonObject *defaultObjectInstance = nil;
    
    if (!defaultObjectInstance)
        defaultObjectInstance = [[super allocWithZone:NULL] init];
    
    return defaultObjectInstance;
}

+ (id)allocWithZone:(struct _NSZone *)zone {
    return [self defaultObject];
}
@end

  

#import <Foundation/Foundation.h>

@interface DSSingletonObject : NSObject

// 写法一
+ (instancetype)defaultObject;

// 写法二:线程安全,iOS4之后常用这种
+ (DSSingletonObject *)sharedObject;

@end

  

int main(int argc, const char * argv[])
{
    DSSingletonObject *obj = [DSSingletonObject defaultObject];
    NSLog(@"%p", obj);
    
    DSSingletonObject *obj2 = [[DSSingletonObject alloc] init];
    NSLog(@"%p", obj2);
    
    DSSingletonObject *obj3 = [[DSSingletonObject alloc] init];
    NSLog(@"%p", obj3);
    
    
    
    return 0;
}

  

iOs 单例模式的定义,实现、步骤

标签:

原文地址:http://www.cnblogs.com/tang910103/p/5061436.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!