关闭

ios开发(十三) singlton

587人阅读 评论(0) 收藏 举报
分类:
http://cocoa.venj.me/blog/singleton-in-objc/
@interface SomeManager : NSObject
+ (id)sharedManager;
@end

/* 非线程安全的实现 */
@implementation SomeManager

+ (id)sharedManager {
    static id sharedManager = nil;

    if (sharedManager == nil) {
        sharedManager = [[self alloc] init];
    }

    return sharedManager;
}
@end

/* 线程安全的实现 */
@implementation SomeManager

static id sharedManager = nil;

+ (void)initialize {
    if (self == [SomeManager class]) {
        sharedManager = [[self alloc] init];
    }
}

+ (id)sharedManager {
    return sharedManager;
}
@end
注意: +initialize这个函数,这个函数是class的函数,在任意初始化之前,只会调用一次,所以这个函数特别适合做singlton。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

    wangeen's technique blog

    个人资料
    • 访问:724432次
    • 积分:9166
    • 等级:
    • 排名:第2078名
    • 原创:230篇
    • 转载:156篇
    • 译文:2篇
    • 评论:33条
    博客专栏
    文章分类