关闭

iphone单列模式(内存管理)

标签: iphoneclass
845人阅读 评论(0) 收藏 举报

#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; \

}


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

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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:801806次
    • 积分:7092
    • 等级:
    • 排名:第3329名
    • 原创:39篇
    • 转载:287篇
    • 译文:0篇
    • 评论:41条
    最新评论