Object-C技术学习,更多资源请访问 https://www.itkc8.com
// main.m
// 单例模式
//
// Created by Goddog on 15/1/2.
// Copyright (c) 2015年 Goddog. All rights reserved.
//
/*
1.一个类始终只能创建一个实例,则这个类被称之为单例类
2.单例类可以通过static全局变量来实现,程序考虑定义一个static全局变量,该变量用于保存已创建的Singleton对象,
每次程序需要获取该实例时,程序先判断该static全局变量是否为nil,如果为nil,则初始化一个实例并赋值给static全局变量
3.类的实现部分会定义一个static全局变量,通过该全局变量来缓存已有的实例,然后实现类方法。
*/
#import <Foundation/Foundation.h>
//声明部分
@interface Singleton : NSObject
+(id) instance;
@end
//实现部分
//先定义一个static全局变量
static id instance = nil;
@implementation Singleton
+(id) instance
{
//如果instance为nil
if (!instance) {
//创建一个实例,并将该实例赋值给instance全局变量
instance = [[super alloc] init];
}
return instance;
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
//判断两次获取实例是否相同,相同返回1
NSLog(@"%d",[Singleton instance] == [Singleton instance]);
}
return 0;
}
Object-C技术学习,更多资源请访问 https://www.itkc8.com