iOS-关于单例类的使用,以及使用单例进行传值

本文介绍了iOS开发中如何利用单例模式来确保类只有一个实例,并用其实现不同视图间的数据共享和传递。通过创建一个单例类并详细解释其初始化过程,展示了如何在A.m和B.m之间传递字符串值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单例模式顾名思义就是只有一个实例,它确保一个类只有一个实例,并且自行实例化并向整个系统提供这个实例。它经常用来做应用程序级别的共享资源控制。这个模式使用频率非常高,通过一个单例类,可以实现不同view之间的参数传递

首先创建一个单例类   继承自 NSObject

在.h文件中

#import <Foundation/Foundation.h>

@interface CaseDescription : NSObject

@property (strong,nonatomic) NSString *singleCase;

//实现单例方法

+ (CaseDescription *) GetInstance;

@end

然后在.m中


#import "CaseDescription.h"


@implementation CaseDescription


// 单例对象

static CaseDescription *instance;


// 单例

+ (CaseDescription *) GetInstance {

    @synchronized(self) {

        if (instance == nil) {

            instance = [[self alloc] init];        

        }

    }

    return instance;

}

-(id) init

{

    if (self = [super init]) {

        self.singleCase = [[NSString alloc] init];

    }

    return self;

}

@end

因为我要传值  从A.m 传到 B.m

当然, A和B  都要声明这个单例类  

那我在A.m这样写:

   CaseDescription *session = [CaseDescription GetInstance];   

    session.singleCase = @"这里是A.m中的一个值,也就是你要传的";

然后再B.m中这样调用就行了:

CaseDescription *session = [CaseDescription GetInstance];

    NSString *value = session.singleCase;

NSLog(@"%@",value);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值