iphone单列模式(内存管理)

#define SYNTHESIZE_SINGLETON_FOR_CLASS(classname) \

\

static classname *shared##classname = nil; \

\

+ (classname *)shared##classname \

{ \

@synchronized(self) \

{ \

if (shared##classname == nil) \

{ \

shared##classname = [[self alloc] init]; \

} \

} \

\

return shared##classname; \

} \

\

+ (id)allocWithZone:(NSZone *)zone \

{ \

@synchronized(self) \

{ \

if (shared##classname == nil) \

{ \

shared##classname = [super allocWithZone:zone]; \

return shared##classname; \

} \

} \

\

return nil; \

} \

\

- (id)copyWithZone:(NSZone *)zone \

{ \

return self; \

} \

\

- (id)retain \

{ \

return self; \

} \

\

- (NSUInteger)retainCount \

{ \

return NSUIntegerMax; \

} \

\

- (void)release \

{ \

} \

\

- (id)autorelease \

{ \

return self; \

}


这种代码一般会出现单例类的实现文件的最上面、、、

是为了创建一个静态的指针、、,在程序运行期间会一直存在!
在单例方法里,用来指向创建的单例对象,
所以通过此指针可以在程序运行期间随时取到单例对象、、、


阅读更多
文章标签: iphone class
上一篇iphone知识汇总2
下一篇HTTP的请求方法OPTIONS
想对作者说点什么? 我来说一句

iPhone 内存管理

2011年01月26日 429KB 下载

IOS IPhone 内存管理

2013年01月15日 56KB 下载

iPhone内存管理

2013年09月01日 206KB 下载

iphone内存管理

2012年02月25日 125KB 下载

没有更多推荐了,返回首页

关闭
关闭