OC -- 单例设计模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC -- 单例设计模式相关的知识,希望对你有一定的参考价值。

#import <Foundation/Foundation.h>

@interface Person : NSObject

+ (instancetype)sharePerson;

@end

@implementation Person

+ (instancetype)sharePerson{

    Person *p = [[Person alloc] init];

    return p;

}

static Person *_instance;

+ (instancetype)allocWithZone:(struct _NSZone *)zone{

    if(_instance == nil){

        _instance = [[super allocWithZone:zone] init];

    }

    return _instance;

}

@end

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        Person *p1 = [[Person alloc] init];

        Person *p2 = [Person new];

        Person *p3 = [Person sharePerson];

  // 如果打印出的3个地址一样,说明单例设计成功

        NSLog(@"%p --- %p --- %p", p1, p2, p3);

    }

    return 0;

}

以上是关于OC -- 单例设计模式的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发-OC篇-单例模式

单例模式Singleton-OC版

单例模式探索

专题系列设计模式—— 七:单例模式

Objective-C和Swift实现单例的几种方式

什么叫单例?