iOS中传值方式

本文主要探讨了iOS开发中传递值的各种方法,重点关注了使用通知中心进行传值的实现细节。通过发送和接收通知,实现对象间的解耦通信。同时提到了属性、协议、Block以及单例等其他传值方式。

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

在iOS中传值大概有以下几种方式

这里重点介绍通知中心传值:

1:通知中心传值

NSNotificaticonCenter提供了一种更加解耦的方式.最典型的应用就是任何对象对可以发送通知到通知中心,

通知任何对象可以监听中心的通知.

通知中心就像在广播,广播出去的信号按照规定的名字广播出去,如果想收听就要调到对应的频道接受.

发送通知的代码如下

NSDictionary *dict = @{@"KEYS":@"WANGHUIZHOU"};
    [[NSNotificationCenter defaultCenter] postNotificationName:@"installType" object:nil userInfo:dict];
    //[[NSNotificationCenter defaultCenter] postNotificationName:@"installType" object:nil];
    [self.navigationController popViewControllerAnimated:YES];
在这里广播出去的通知中心的名字是"installType",并且广播出去所携带的信息为一个字典.如果不携带信息就写上注释掉的一行.

接受通知的代码:

1:首先要注册通知中心

/// 注册通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(installProcess:) name:@"installType" object:nil];

在接受到通知的时候执行的方法如下:

- (void)installProcess:(NSNotification *)notification {

    NSLog(@"----------------------");
    NSLog(@"%@",notification.userInfo[@"KEYS"]);
}
取出广播信息中的信息可用 :notification.UserInfo[@"KEYS"].因为传过来的数据是以字典形式传输.

2:在接受完通知的时候一定要把观察者remove掉

-(void)dealloc {
    [[NSNotificationCenter defaultCenter]removeObserver:self];
}

2、属性传值
前向后传值。
3、协议传值
4、Block传值
代替协议代理传值,主要时间点问题。
5、单利传值
数据共享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值