美文网首页
iOS单例模式

iOS单例模式

作者: 豆豆阳光啊 | 来源:发表于2017-08-03 23:51 被阅读21次

单例模式是在iOS开发中常用的开发模式之一,使用单例模式是为了保证在整个程序中,所定义的属性值是唯一的

之前对于单例模式一直模糊不清,每个人的写法也各有不同,现在整理两种常用的写法如下,方便查找和参考

#import <Foundation/Foundation.h>

@interface People : NSObject
+ (People *)shareManager;       //类方法
@property (nonatomic, copy) NSString *peopleName;  //属性值
@end


#import "People.h"

@implementation People

@synthesize peopleName;

static People *singlePeople = nil;
+ (People *)shareManager {
    dispatch_once_t once;
    dispatch_once(&once, ^{
        singlePeople = [[self alloc] init];
    });
    return singlePeople;
}
@end

在类方法中使用GCD的方式,dispatch_once 这个作用是在整个程序的生命周期中只执行一次代码,而且保证此线程是同步的;dispatch_once_t 是GCD提供的结构体,在使用的过程中把地址传递给dispatch_once,dispatch_once就可以记录代码是否被调用过

#import <Foundation/Foundation.h>

@interface PeopleManager : NSObject
+ (PeopleManager *)shareInstance;
@property (nonatomic, copy) NSString *managerp;
@end

#import "PeopleManager.h"
static PeopleManager *people = nil;
@implementation PeopleManager
+ (PeopleManager *)shareInstance {
    @synchronized (people = nil) {
        people = [[self alloc] init];
    }
    return people;
}

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

- (NSString *)managerp {
    return @"这是一个单例";
}

@end

第二种写法同样是使用类方法,synchronized在方法中的意思是和GCD中的dispatch_once 方法是同样的效果,保证线程的同步

- (NSString *)managerp {
    return @"这是一个单例";
}

@synthesize peopleName;

这两个方法是一致的,都是表示get/set方法

相关文章

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • iOS 单例模式

    关于单例模式的详解,看完这几篇,就完全了然了。iOS 单例模式iOS中的单例模式iOS单例的写法

  • iOS 单例模式 or NSUserDefaults

    本文内容:iOS的单例模式NSUserDefaults的使用总结:iOS单例模式 and NSUserDefaul...

  • 单例模式 Singleton Pattern

    单例模式-菜鸟教程 iOS中的设计模式——单例(Singleton) iOS-单例模式写一次就够了 如何正确地写出...

  • 【设计模式】单例模式

    学习文章 iOS设计模式 - 单例 SwiftSingleton 原理图 说明 单例模式人人用过,严格的单例模式很...

  • iOS模式设计之--创建型:1、单例模式

    iOS模式设计之--1、单例模式

  • iOS单例模式容错处理

    ios 单例模式容错处理 1、单例模式的使用和问题解决 在ios开发的过程中,使用单例模式的场景非常多。系统也有很...

  • 谈一谈iOS单例模式

    这篇文章主要和大家谈一谈iOS中的单例模式,单例模式是一种常用的软件设计模式,想要深入了解iOS单例模式的朋友可以...

  • iOS知识梳理3:设计模式

    iOS有哪些常见的设计模式?单例模式/委托模式/观察者模式/MVC模式 单例模式 单例保证了应用程序的生命周期内仅...

  • 单例对象

    iOS单例模式(Singleton)单例模式的意思就是:只有一个实例;单例模式确保每个类只有一个实例,而且自行实例...

网友评论

      本文标题:iOS单例模式

      本文链接:https://www.haomeiwen.com/subject/fcnhgttx.html