`
wangleyiang
  • 浏览: 221622 次
社区版块
存档分类
最新评论

Objective-C 创建单例

阅读更多

程序开发(Objective-C)中,经常要用到单例,其创建代码如下:

static Car *sharedInstance = nil;

#pragma mark Single instance
+ (Car *)sharedInstance {
    if (!sharedInstance) {
        sharedInstance = [[self alloc] init];
    }
    return sharedInstance;
}

+ (id)allocWithZone:(struct _NSZone *)zone {
    @synchronized(self) {
        if (sharedInstance == nil) {
            sharedInstance = [super allocWithZone:zone];
            return sharedInstance;
        }
    }
    return nil;
}

 说明:

  1. 覆盖allocWithZone:方法的目的是为了防止任何类创建第二个实例;
  2. @synchronized指令防止多线程同时调用该代码块;

 

分享到:
评论

相关推荐

    objective-c单例模式的完整书写方式

    4. **实现单例方法**:在`+ (instancetype)sharedInstance`方法中,第一次调用时创建单例,之后则返回已创建的单例。 ```objc + (instancetype)sharedInstance { static dispatch_once_t onceToken; dispatch_...

    Effective Objective-C 2.0

    1. Objective-C语言简介:Objective-C是一种通用的编程语言,其被广泛应用于苹果公司的macOS、iOS、watchOS和tvOS操作系统。它基于C语言,并加入了Smalltalk风格的消息传递机制。 2. 类和消息机制:Objective-C语言...

    c c++ objective-c 混合编程 头文件问题

    - **单例模式**:对于全局变量,可以考虑使用Objective-C的单例模式,创建一个全局可访问但只有一个实例的对象,以此来替代全局变量。 - **头文件包含管理**:谨慎管理头文件的包含关系,避免不必要的包含,减少...

    Effective Objective-C(原版)

    1. **Objective-C基础**:Objective-C是苹果平台的主要编程语言,基于C语言并扩展了面向对象的特性。书中会介绍类、对象、消息传递等基本概念,以及与C++的交互方式。 2. **协议(Protocols)**:Objective-C的协议...

    Objective-C编程之道 iOS设计模式解析 源码 demo

    Objective-C的单例通常通过`+ (instancetype)sharedInstance`方法实现,确保类在整个程序中只有一个实例。 3. **工厂模式(Factory)** 工厂模式提供了一种创建对象的接口,但允许子类决定实例化哪个类。在iOS开发...

    Effective Objective-C 2.0&Obj;-C高级编程

    - Objective-C编程中,设计模式如单例、工厂、代理、观察者等是常见实践,理解并灵活运用这些模式可以提高代码的可读性和可维护性。 9. **Objective-C 2.0新特性**: - 包括快速枚举、属性(properties)的改进、...

    Objective-C 开发入门

    - **设计模式**:设计模式是解决特定问题的模板,Objective-C中的设计模式如单例模式、工厂模式等对于理解和构建Cocoa应用至关重要。 #### 五、资源推荐 - **《面向对象编程与Objective-C》**:本书提供了一个面向...

    OC-单例OC-单例OC-单例OC-单例OC-单例

    在iOS和Mac开发中,Objective-C(简称OC)是一种广泛使用的编程语言,尤其在Apple的UIKit框架下构建应用程序时。单例(Singleton)是软件设计模式中的一种,它确保一个类只有一个实例,并提供一个全局访问点。这个...

    objective-c编程 第2版

    10. **设计模式**:Objective-C编程中常见的设计模式,如单例模式、工厂模式、观察者模式等,都是提高代码复用性和可维护性的关键。 11. **UI设计与事件处理**:对于iOS应用,了解如何创建和布局UI元素,以及处理...

    Programming in Objective-C

    6. 设计模式:在Objective-C编程中,合理地应用设计模式能解决常见的设计问题,书里可能会讨论单例模式、工厂模式等。 7. Cocoa Touch框架:针对iOS应用开发,需要掌握的用户界面构建相关的类和方法,例如UIKit框架...

    Programming in Objective-C 2.0 - Stephen G. Kochan

    书中还探讨了设计模式在Objective-C中的应用,如单例模式、工厂模式等,这些模式提供了解决常见问题的标准解决方案,有助于提高代码的复用性和可读性。 #### 7. 高级主题 除了基础语法和概念,本书还覆盖了一些高级...

    objective-c教程

    在Objective-C中实现单例模式涉及到static静态全局变量和extern外部变量的应用。 Block是Objective-C中的一种匿名函数,允许封装代码块,并将其作为参数传递给方法或函数。学习Block的定义、实现以及_block关键字的...

    The Objective-C 2.0 Programming Language

    这些属性可以用来存储类级别的状态,而不需要创建单例。 4. 对象初始化和析构:Objective-C 2.0改进了对象初始化过程,引入了`-init`方法的快速失败机制,以及`+load`和`+initialize`方法,用于类加载时的自定义...

    Objective-C 编程之道

    11. **UI设计和事件处理**:Objective-C中如何创建用户界面,以及如何处理用户交互,如触摸事件,都是开发者需要掌握的知识。 12. **测试与调试**:学会使用Xcode的调试工具,编写测试用例,是确保代码质量的重要...

    objective-c-lib-source

    Objective-C 是苹果公司为其操作系统 macOS 和 iOS 开发的一种面向对象的编程语言,它以其与C语言的紧密集成和强大的动态特性而闻名。"objective-c-lib-source" 从标题上看,显然是一个Objective-C编写的开源库或者...

    简单的 Objective-C 示例代码,实现了一个简单的计算器程序

    - **单例模式**:可能用于创建唯一实例的 `Calculator` 对象,确保在整个应用中只有一台计算器。 - **模型-视图-控制器(MVC)**:这是 iOS 开发常用的设计模式,计算器程序中的 `Calculator` 可能作为模型,负责...

Global site tag (gtag.js) - Google Analytics