为什么需要单例模式?
为了保持一个类只有一个实例(对象)
如何实现代理模式?
第一步:全局变量
第二步:重写allocwithzone方法
第三步:shared*** 方法
例子:
static XMPPServer *server = nil; @implementation XMPPServer //单例 +(XMPPServer *)sharedServer{ @synchronized(self){ if (server == nil) { server = [[self alloc] init]; } } return server; } +(id)allocWithZone:(NSZone *)zone{ @synchronized(self){ if (server == nil) { server = [super allocWithZone:zone]; return server; } } return nil; }