单例模式(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)的主要内容,如果未能解决你的问题,请参考以下文章