首页 > 代码库 > 创建单例类
创建单例类
Main.m
/* 创建单例类 */ int main(int argc, const char * argv[]) { // NSBundle *bundle = [NSBundle mainBundle]; // NSFileManager *fileManager = [NSFileManager defaultManager]; SingletonClass *single1 = [SingletonClass defaultClass]; SingletonClass *single2 = [SingletonClass defaultClass]; NSLog(@"single1:%@",single1); NSLog(@"single2:%@",single2); [single1 copy]; //使用alloc方法创建 SingletonClass *single3 = [[SingletonClass alloc] init]; NSLog(@"single3:%@",single3); return 0; }
SingletonClass.h
+ (SingletonClass *)defaultClass;
SingletonClass.m
//定义静态单例对象 static SingletonClass *single = nil; @implementation SingletonClass + (SingletonClass *)defaultClass { if (single == nil) { single = [[SingletonClass alloc] init]; } return single; } //alloc调用的方法 //zone是用来分配和释放内存的 + (id)allocWithZone:(struct _NSZone *)zone { if (single == nil) { single = [super allocWithZone:zone]; } return single; } - (id)copy { return self; } - (id)retain { return self; } - (oneway void)release { //什么都不做 } //返回最大值,不让用户查阅引用计数 - (NSUInteger)retainCount { return UINT_MAX; } - (id)autorelease { return self; }
创建单例类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。