程序多次创建类的对象没有多大意义,还有可能造成系统性能下降。
如果一个类始终只能创建一个实例,这个类称为单例类.
单例类可以通过static全局变量来实现.
#import <Foundation/Foundation.h>
@interface DCSingle : NSObject
+(id) instance
;
@end
#import "DCSingle.h"
static id instance
= nil ;
@implementation DCSingle
+(id) instance
{
if (!instance) {
// 创建一个Singleton实例,并将该实例赋给instance全局变量
instance = [[super alloc]init];
}
return instance ;
{
if (!instance) {
// 创建一个Singleton实例,并将该实例赋给instance全局变量
instance = [[super alloc]init];
}
return instance ;
}
@end
#import <Foundation/Foundation.h>
#import "DCSingle.h"
int main(int argc, const char *
argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
// 判断两次获取的实例是否相等,程序将会返回1(代表真)
NSLog(@"%d" ,[DCSingle instance] == [DCSingle instance]);
}
return 0;
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
// 判断两次获取的实例是否相等,程序将会返回1(代表真)
NSLog(@"%d" ,[DCSingle instance] == [DCSingle instance]);
}
return 0;
}
==>
2014-11-29 11:54:02.124 Singleton[626:303] Hello, World!
2014-11-29 11:54:02.127 Singleton[626:303] 1
2014-11-29 11:54:02.127 Singleton[626:303] 1
Program ended with exit code: 0