ios开发(十三) singlton

转载 2013年12月03日 20:25:50
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。

相关文章推荐

iOS开发技巧(系列十三:UIRefreshControl下拉刷新)

接上篇UIRefreshControl系统下拉刷新,又找了一篇不错的博客 ,分享给大家转载地址:http://my.oschina.net/leejan97/blog/268411 其实UIRefr...

Objective-C(十三、字典类)——iOS开发基础

字典类,可变字典NSDictionary和不可变字典NSMutableDictionary的基本知识和常用方法...

IOS开发学习笔记(十三)——创建日历事件

下面我们讨论如何在iOS中创建日历事件。日历事件主要涉及到EventKit框架。 首先我们需要对工程添加框架。点击工程查看属性,在Linked FrameWorks and Libraries中增...

iOS小明开发笔记(十三) (Quartz2D简单使用二)

一、画文字 #import "MMTextView.h"  @implementation MMTextView  - (void)drawRect:(CGRect)...

【iOS-Cocos2d游戏开发之十三】CCSprite利用Bezier(贝塞尔)抛物线并同时播放两个Action动作!

如果我们想实现让CCSprite进行抛物线运动的话,那么我想童鞋们首先会想到利用Box2d或者其他物理引擎去为CCSprite创建物理世界中对应的刚体进行实现,但是反过来想,对于不熟悉Box2d或者其...

iOS开发时XCode里面的空模板

  • 2015年12月08日 20:50
  • 65KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ios开发(十三) singlton
举报原因:
原因补充:

(最多只允许输入30个字)