单例模式(oc)

Posted 徒步天涯

tags:

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

//主函数 main.m
#import <Foundation/Foundation.h>
#import "Singleton.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
    
        Singleton *sing1=
        [Singleton shareInstance];
        Singleton *sing2=[Singleton shareInstance];
       
        Singleton *sing3=[Singleton new];
        Singleton *sing4=[[Singleton alloc]init];
        Singleton *sing5=[sing4 copy];
       
        NSLog(@"%@",sing1);
        NSLog(@"%@",sing2);
        NSLog(@"%@",sing3);
        NSLog(@"%@",sing4);
        NSLog(@"%@",sing5);
       
    }
    return 0;
}

//Singleton.h文件
#import <Foundation/Foundation.h>

@interface Singleton : NSObject<NSCopying>
+(Singleton *)shareInstance;
@end


//Singleton.m文件
#import "Singleton.h"

@implementation Singleton
static Singleton *singleton;
//单例方法
+(Singleton *)shareInstance{
    if (singleton==nil) {
        singleton=[[Singleton alloc]init];
    }
    return singleton;

}
//单例方法  初始化
+(instancetype)allocWithZone:(struct _NSZone *)zone{
//懒加载
if (singleton==nil) { singleton=[super allocWithZone:zone]; } return singleton; } //单例方法 复制 -(id)copyWithZone:(NSZone *)zone{ return self; } @end

 

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

单例模式(oc)

OC -- 单例设计模式

iOS开发-OC篇-单例模式

IOS开发-OC学习-常用功能代码片段整理

设计模式之单例模式

自己写的程序有必要用单例吗