`
victorwmh
  • 浏览: 212859 次
  • 性别: Icon_minigender_1
  • 来自: 宇宙
社区版块
存档分类
最新评论

Objective-c 线程安全的单件实例

 
阅读更多
#import <Foundation/Foundation.h>

@interface VnoteUtil : NSObject

+ (VnoteUtil *)instance;

@end

 

#import "VnoteUtil.h"
static VnoteUtil *instance = nil;

@implementation VnoteUtil


// 实现功能的方法在此添加,下面的方法无须修改...


/************************ 以下为实现单件实例线程安全的方法 ***********************/

+ (VnoteUtil *)instance
{
    @synchronized(self) {
        if (!instance) instance = [[super allocWithZone:NULL] init];
    }
    return instance;
}

+ (id)allocWithZone:(NSZone *)zone
{
    return [self instance];
}

- (id)copyWithZone:(NSZone *)zone
{
    return self;
}

- (id)init
{
    if (instance) {
        return instance;
    }
    self = [super init];
    return self;
}

- (id)retain
{
    return self;
}

- (oneway void)release
{
    // Do nothing
}

- (id)autorelease
{
    return self;
}

- (NSUInteger)retainCount
{
    return NSUIntegerMax;
}

@end

 

参考资料:

http://cocoa.venj.me/blog/singleton-in-objc/

http://leyteris.iteye.com/blog/1669198

http://www.cocoachina.com/bbs/simple/?t33050.html

 

 

 

分享到:
评论

相关推荐

    Learn objective-c on the mac配套实例代码

    "Learn Objective-C on the Mac" 这本书的配套实例代码,为学习者提供了实践的机会,加深对Objective-C的理解。 首先,让我们深入了解一下Objective-C的关键概念: 1. **消息传递**: Objective-C 是基于 Smalltalk...

    Objective-C程序设计 第6版 pdf

    8. **GCD和Blocks**:Grand Central Dispatch(GCD)是Apple的多线程解决方案,而Blocks是Objective-C中的匿名函数。这两者在并发编程中极为重要,书中可能会详细介绍它们的用法和优势。 9. **iOS和macOS开发环境**...

    Objective-C2.0程序设计第二版中文版及代码

    1. **Objective-C基础**:Objective-C是在C语言基础上扩展的,添加了面向对象特性。它的基础包括类、对象、消息传递等概念。类定义了对象的属性和行为,对象则是类的实例。消息传递是Objective-C的核心,通过`...

    这是一个基于Objective-C语言的基础案例集 旨在用于给初学者快速了解Objective-C语言的语法 .zip

    8. Foundation框架:Objective-C的开发离不开Foundation框架,它提供了一系列基础数据类型、集合类(如NSArray、NSDictionary)、线程管理等工具。 9. iOS SDK:对于iOS开发,还需要了解UIKit框架,它包含了构建...

    Object-C语言教程-提供了 Objective-C 的基本语法和一些示例,希望能够帮助你快速入门 Objective-C

    在Objective-C中,通常通过`alloc`和`init`方法来创建一个新的对象实例。例如: ```objective-c MyClass *myObject = [[MyClass alloc] init]; myObject.name = @"John"; myObject.age = 30; [myObject printName]; ...

    这是一个基于Objective-C语言的基础案例集。旨在用于给初学者快速了解Objective-C语言的语法。.zip

    1. **Objective-C的起源与特性**:Objective-C是在C语言的基础上扩展的,增加了消息传递机制和面向对象特性。它的语法包含C语言的所有部分,同时引入了类、继承、多态等OOP概念。 2. **类与对象**:在Objective-C中...

    Objective-C基础教程(Learn Objective-C)随书源码下载

    Objective-C是C语言的超集,它扩展了C语言,加入了面向对象的特性。面向对象编程(OOP)的核心概念包括类、对象、继承、封装和多态。Objective-C通过消息传递机制实现了这些概念,使得代码更加模块化和可维护。 2....

    objective-c编程 第2版=objective-c program 2nd edition_13889311

    Objective-C编程第二版,可能是为了适应技术的更新和开发者的需求而进行的一次修订,旨在帮助程序员深入理解和熟练掌握Objective-C语言。 Objective-C是C语言的超集,它在C的基础上添加了面向对象的概念,如类、...

    Learn Objective-C 中文版 v2

    Objective-C是一种强大的面向对象编程语言,它在Apple的软件开发领域占据着...这份PDF可能包括了实例代码、详细的解释以及练习,旨在帮助开发者从零基础到熟练掌握Objective-C,从而能够开发出功能丰富的Mac和iOS应用。

    学习Objective-C--第一天.doc

    【Objective-C 知识点详解】 Objective-C 是一种强大的、基于 C 语言的面向对象编程语言,主要用于开发苹果平台上的应用程序,包括 Mac OS X 和 iOS。它的语法在 C 语言的基础上扩展,添加了面向对象特性,如类、...

    Objective-C程序设计 第6版 完整版 0分奉上

    Objective-C是在C语言的基础上扩展的,增加了Smalltalk式的面向对象特性,使其成为开发Apple平台应用的首选语言。《Objective-C程序设计 第6版》是一本全面介绍Objective-C编程的教材,旨在帮助开发者深入理解和熟练...

    objective-c实现socket的几个Demo

    在Objective-C中,你可以创建Cocoa NSApplication实例,然后在应用的生命周期内管理Socket连接。 为了测试和调试Socket连接,你可以在项目中包含一些Demo。例如,创建一个简单的客户端,发送请求到服务器,并接收...

    从 C++ 到 Objective-C 快速精通

    7. iOS和macOS SDK:学习Objective-C不仅仅是语言本身,还需要熟悉Apple的开发工具Xcode和对应的SDK,包括UI设计、事件处理、多线程、网络通信等。C++程序员可能需要时间来适应这种集成开发环境。 8. Swift的崛起:...

    Objective-C编程之道

    "Objective-C编程之道"这本书可能涵盖了这些主题,并且深入探讨了面向对象设计原则、MVC模式、GCD(Grand Central Dispatch)多线程管理、Auto Layout布局系统等内容。通过学习本书,开发者可以全面掌握Objective-...

    深入浅出讲objective-c

    1. **语法特性**:Objective-C是在C语言的基础上扩展的,保留了C的语法特性,同时引入了消息传递机制,使得它具有面向对象的能力。 2. **类和对象**:Objective-C中的所有数据结构都是基于类的,类是对象的模板,而...

    Objective-C程序设计.rar

    Objective-C在现代编程语言中独树一帜,因为它在C语言的基础上引入了Smalltalk式的消息传递机制。 《Objective-C程序设计》这本书很可能深入浅出地介绍了这种语言的基础和高级特性。从基础部分,我们可以期待学习到...

    好学的 Objective-C pdf

    Objective-C是一种广泛用于iOS和Mac应用开发的编程语言,它是C语言的扩展,引入了Smalltalk风格的消息传递机制,使得其在面向对象编程领域十分强大。对于iOS开发者而言,Objective-C作为苹果生态中的重要组成部分,...

Global site tag (gtag.js) - Google Analytics