iOS NSNotificationCenter的简单使用

利用Python脚本生成IDA Pro许可证文件idapro.hexlic的完整指南 本文提供了一份详细的Python脚本指南,用于自动化生成IDA Pro的许可证文件idapro.hexlic。文章深入解析了脚本原理,包括构建许可证JSON、RSA密钥修补与签名生成机制,并附有完整的操作流程与常见问题排查,帮助逆向工程人员快速完成本地化许可部署。 阅读详情

在工程的两个地方注册通知, 一个是AppDelegate, 模拟后台接受通知的处理, 一个是ViewController, 模拟UI接受通知的处理. 在另一个界面SecondViewController中设置一个按钮事件, 模拟通知的触发.


界面准备:

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    ViewController *vc = [[ViewController alloc] init];
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
    self.window.rootViewController = nav;
    [self.window makeKeyAndVisible];
    return YES;
}

ViewController中有一个button(进入下一页)和一个label(显示通知内容)

    UIButton *btn = [UIButton buttonWithType:(UIButtonTypeCustom)];
    [btn setTitle:@"进入下一页" forState:(UIControlStateNormal)];
    [btn setTitleColor:[UIColor blackColor] forState:(UIControlStateNormal)];
    btn.frame = CGRectMake(100, 100, 200, 30);
    [btn addTarget:self action:@selector(btnAction:) forControlEvents:(UIControlEventTouchUpInside)];
    [self.view addSubview:btn];

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 200, 200, 30)];
    label.tag = 9090;
    label.textColor = [UIColor blackColor];
    label.text = @"------";
    label.textAlignment = NSTextAlignmentCenter;
    [self.view addSubview:label];

SecondViewController中有一个Button(按钮触发通知的发送)

    UIButton *btn = [UIButton buttonWithType:(UIButtonTypeCustom)];
    [btn setTitle:@"触发通知" forState:(UIControlStateNormal)];
    [btn setTitleColor:[UIColor blackColor] forState:(UIControlStateNormal)];
    btn.frame = CGRectMake(100, 100, 150, 30);
    [btn addTarget:self action:@selector(btnAction:) forControlEvents:(UIControlEventTouchUpInside)];
    [self.view addSubview:btn];

// 用按钮事件模拟触发通知
- (void)btnAction:(UIButton *)btn {
    [[NSNotificationCenter defaultCenter] postNotificationName:@"CHANGE_LABELTEXT" object:@"第二页的通知内容"];
    
    [[NSNotificationCenter defaultCenter] postNotificationName:@"APPDELEGATE_NOTIFICATION" object:@"通知Applegate执行事件"];
}

注册两个通知中心:

AppDelegate.m

//     注册通知 self接受名为@"APPDELEGATE_NOTIFICATION"的通知后,执行notification:方法
//     nil表示不限制通知的发送者
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notification:) name:@"APPDELEGATE_NOTIFICATION" object:nil];

// 接受对应通知之后执行的方法
- (void)notification:(NSNotification *)notification {
//    notification.name 通知的name
//    notification.object 通知的内容, 可自定义
    NSLog(@"%@", notification.object);
}


ViewController.m

// 注册通知 self接受名为@"CHANGE_LABELTEXT"的通知后,执行notification:方法
    // nil表示不限制通知的发送者
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notification:) name:@"CHANGE_LABELTEXT" object:nil];


// 接受对应通知之后执行的方法
- (void)notification:(NSNotification *)notification {
//    notification.name 通知的name
//    notification.object 通知的内容, 可自定义
    NSString *str = (NSString *)notification.object;
    ((UILabel *)[self.view viewWithTag:9090]).text = str;
}


注意:每注册一个通知, 就要在相应类的dealloc方法体类注销通知:

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


点击SecondViewController中的按钮时, 发送两个通知, 分别通知AppDelegate和ViewController进行打印和修改label的操作. 当然也可以一个通知多个地方监听, 执行不同操作.

源码下载

【YOLO系列】YOLOv12详解:模型结构、损失函数、训练方法及代码实现 本文提出YOLOv12,一种以注意力为中心的实时目标检测框架,通过创新性改进解决传统YOLO模型在精度与速度上的失衡问题。核心贡献包括:1)轻量混合注意力模块(LHA)结合通道与空间注意力,在不增加计算负担下提升特征提取能力;2)区域注意机制与R-ELAN网络优化特征聚合,显著改善小目标检测(AP_S提升8.3%);3)动态多光谱数据增强策略增强模型鲁棒性。实验表明,YOLOv12在COCO等基准上实现SOTA性能,同时保持2.1 TOPS/W的高能效比,适用于边缘设备部署。该工作为实时目标检测提供了新的注 阅读详情

相关推荐

Geneformer实战:如何用Hugging Face Transformers快速搭建单细胞转录组分类模型

本文详细介绍了如何使用Geneformer和Hugging Face Transformers快速搭建单细胞转录组分类模型。通过环境准备、数据预处理、模型加载与配置、训练Pipeline构建等步骤,帮助读者掌握基于Transformer架构的单细胞数据分析技术,提升分类准确率和效率。

rl6adventurer的博客 605

ios开发之本地通知

概述: 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情。ios中通知机制又叫消息机制,其包括两类:一类是本地通知;另一类是推送通知。也叫远程通知。两种通知在ios中表现一致,可以通过横幅或者弹出提醒两种形式告诉用户,并且点击通知可以打开应用程序,但是实现原理却完全不同。今天就和大家一块去看一下本地通知,

m0_37177053的博客 1367

基于STM32F407的摄像头(不带FIFO的OV7670)图像采集及LCD显示实验-笔记整理

硬件说明 STM32F4开发板 stm32f4系列的芯片处理的能力可以说非常强大了的,而且内部还自带有数字摄像头接口(DCMI),可以说stm32f407的核心板和不带FIFO的摄像头模块OV7670简直就是绝配! 我手上的这块张这个样子 (图片来源:某宝): F4系列的DCMI接口内部结构框图如下图3所示,具体的配置使用方式可以参考以下这篇博文:《stm32f4的数字摄像头接口(DCMI)使用》 这位博主大大已经很详细地介绍了DCMI接口的具体使用方法和原理,更重要的是里面还有接口的配置函数,虽然不完

LiangWF22的博客 2万+

iOS 学习笔记(一) 视频引导页的制作

话不多说 先上图基本思路 1.把 AVPlayerLayer加载到 UIView 上 UIView 加载到 ScrollView上,讲player加载到一个可变数组里 2.滑动 ScrollView的时候切换 view 的页面 切换 view 的页面,先把上一个页面的播放器暂停并且把它重置到初始状态 将当前也页面的播放器从数组里面取出加载播放 1.准备步骤 (1)几个本地视频资源 这里示例讲到的是

付佳 Stay Hungry Stay Foolish 1661

零基础入门simulink1000例--第112例:在 Simulink 中构建一个基本的相控阵雷达波束形成系统仿真模型

摘要:本文详细介绍了使用Simulink实现相控阵雷达波束形成技术的完整流程。从创建Simulink模型、设计天线阵列、信号生成,到波束形成算法实现和结果可视化,涵盖了关键步骤。文章重点讲解了均匀线性阵列的设计、线性调频信号生成、相位偏移计算等核心技术,并提供了MATLAB代码示例。通过Scope或ArrayPlot模块进行结果分析,最终可导出为嵌入式代码部署。该系统展现了电子扫描波束的技术优势,为雷达系统设计提供了有效的仿真方法。

amy_mhd的博客 211

多智能体强化学习MATD3算法完整复现与分析

多智能体强化学习MATD3算法复现与分析摘要 MATD3算法是多智能体深度强化学习领域的重要进展,通过改进MADDPG算法,引入双Q学习、延迟策略更新和目标策略平滑等技术,显著提升了算法稳定性。本文完整复现了MATD3算法,详细解析了其数学原理,包括部分可观测马尔可夫博弈模型和TD3核心思想。在实现层面,设计了集中式Critic和分布式Actor的神经网络架构,采用PyTorch框架构建了Actor-Critic网络模块,包含精心设计的权重初始化和训练流程。该算法有效解决了多智能体环境中的非平稳性、信用分配

max500600的博客 530

iOS通知中心 NSNotificationCenter详解

NSNotificationCenter的适用场景,原理机制,使用步骤等。 通知中心的使用顺序:先确保注册了观察者,因为发送通知是一瞬间的事,如果没有注册观察者,发送通知后再注册是不会收到的。 总结:通知只会发送给当前监听着的对象。 代码 //注册通知 在关心该通知的页面注册监听 [[NSNotificationCenter defaultCenter] add...

Swallow0322的博客 248

华为OD机试双机位C卷-虚拟文件系统(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【虚拟文件系统】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【虚拟文件系统】。

qq_45776114的博客 478

IOS NSNotificationCenter 的使用

IOS NSNotificationCenter 的使用   在Android中,为了解耦各个模块的耦合度,我们会使用很多方式,当然最简单而且效率最高的方式就是使用事件总线的方式进行消息分发,但是Android中并没有自带的消息分发机制,需要使用第三方库,比如EventBus、otto、或者自己实现,甚至最近开始流行使用RxJava去实现Eve...

weixin_30341745的博客 151

华为FusionCompute之计算虚拟化

华为FusionCompute之虚拟化

jks212454的博客 2452

【ComfyUI】QwenImageEdit OOTD角色与姿态匹配换装

本文介绍了一个基于Qwen Edit OOTD 2.0的ComfyUI工作流,能够实现角色与姿态匹配的智能穿搭生成。该工作流通过整合模型推理、姿态识别、图像拼接和渲染等节点,完成从角色图、姿态图到成品穿搭图的完整生成流程。核心采用Qwen Image系列模型进行图像理解和编辑,配合ControlNet进行姿态引导。用户只需提供角色图和姿态参考图,系统即可自动完成姿态解析、语义编码、采样生成等步骤,输出与输入姿态一致的穿搭图像。该方案适用于虚拟角色展示、电商试穿等场景,能保持角色特征一致的同时灵活变换姿态,显

Mr数据杨 1588

iOS开发 使用NSNotificationCenter

在iOS开发中,类与类之间的通信方式有很多:delegate、block、KVO,还有就是NSNotificationCenter。使用NSNotificationCenter的好处就是可以让多个无引用关系的对象进行通信。 注册通知 [[NSNotificationCenter defaultCenter] addObserver:observer selector:SEL name:name

科C的专栏 463

RML2018.01a数据集的读取与使用

基于深度学习的自动调制识别

QAQIknow的博客 1万+

ios NSNotificationCenter 学习使用

Android里面发消息可以用广播,也可以自己定义一套框架,比如eventbus,iOS也有自己原生的消息框架--NSNotificationCenter。 这里简单记录下怎么使用NSNotificationCenter类,直接贴代码: // // ViewController.m // NotificationTest // // Created by Alex on 2017/3/

Alex老夫子的专栏 716

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

iOS开发之--NSNotificationCenter的使用

NSNotification是IOS中一个调度消息通知的类,采用单例模式设计,在程序中实现传值、回调等地方应用很广 iOS中通知中心NSNotificationCenter应用总结 一、了解几个相关的类 1、NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量。 这个成员变量是这个消息对象的唯一标识,用于辨别消息对象。 @property (readonl...

weixin_34221036的博客 102

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

IOS中通知中心(NSNotificationCenter)的使用总结

IOS中通知中心NSNotificationCenter应用总结 一、了解几个相关的类 1、NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量。 这个成员变量是这个消息对象的唯一标识,用于辨别消息对象。 @property(readonly,copy)NSString*name; 这个成员变量定义一个对象,可以理解为针对某一个对...

ayaya001100的博客 136

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IOS开发基础篇--NSNotificationCenter使用小结

IOS开发基础篇--NSNotificationCenter使用小结  一、NSNotification和Delegate的联系和区别 众所周知,IOS中经常会使用到NSNotification和delegate来进行一些类之间的消息传递。言归正传,这两种有什么区别呢?  NSNotification就是IOS提供的一个消息中心,由一个全局的defaultNotifica

qq_31863011的博客 712

ios 通知接收两次_iOS中通知中心(NSNotificationCenter)的使用总结

iOS中通知中心NSNotificationCenter应用总结一、了解几个相关的类1、NSNotification这个类可以理解为一个消息对象,其中有三个成员变量。这个成员变量是这个消息对象的唯一标识,用于辨别消息对象。@property(readonly,copy)NSString*name;这个成员变量定义一个对象,可以理解为针对某一个对象的消息。@property(readonly,ret...

weixin_39735288的博客 744

iOS中通知的使用NSNotificationCenter

在实际的开发中,通知这一手段还是比较常用的。那今天就详细讲讲通知。 1.通知中心(NSNotificationCenter)实际是在程序内部提供了一种广播机制。把接收到的消息,根据内部的消息转发表,将消息转发给需要的对象。这句话其实已经很明显的告诉我们要如何使用通知了。第一步:在需要的地方注册要观察的通知,第二步:在某地方发送通知。(这里注意:发送的通知可能是我们自定义的,也可能是系统的)。

gujinyue 2万+

IOS中通知中心(NSNotificationCenter)的使用

IOS中通知中心NSNotificationCenter应用总结 一、了解几个相关的类 1、NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量。 这个成员变量是这个消息对象的唯一标识,用于辨别消息对象。 @property (readonly, copy) NSString *name; 这个成员变

wangjia55的专栏 548

iOS中NSNotificationCenter的简单使用

iOS开发中的通知系统简单的说就是向全系统发送一个广播类型的消息,所有的控制器都可以接收到,自行决定是否处理 简单说一下使用 首先有两个UIViewController,可以跳转和返回,这个就不写了 在第一个View中创建一个button并添加点击事件 [button addTarget:self action:@selector(action) forControlE

coder__jiabin的博客 460

iOS中通知中心(NSNotificationCenter)的使用总结

转载自:https://my.oschina.net/u/2340880/blog/406163 摘要: NSNotification是IOS中一个调度消息通知的类,采用单例模式设计,在程序中实现传值、回调等地方应用很广。 iOS中通知中心NSNotificationCenter应用总结 一、了解几个相关的类 1、NSNotification 这个类可以理

逢个场,作个戏 701

iOS-通知中心(NSNotificationCenter)的使用总结

iOS中通知中心NSNotificationCenter应用总结 一、了解几个相关的类 1、NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量。 这个成员变量是这个消息对象的唯一标识,用于辨别消息对象。   @property (readonly, copy) NSString *name;   这个成员变量定义一

st646889325的博客 500

iOS NSNotificationCenter 使用详解

参考http://www.cnblogs.com/wenxp2006/articles/2499330.html 和 http://www.jianshu.com/p/a4d519e4e0d5 通常我们在 iOS 中发生什么事件时该做什么是由 Delegate 实现的,例如 View 加载完后会触发 viewDidLoad。Apple 还为我们提供了另一种通知响应

xiaota00的博客 1802

iOS开发之NSNotificationCenter(通知)的使用方法

star  2012-02-23 19:41  移动开发, 编程语言  抢沙发   iOS软件开发的时候会遇到这种情况:打开APP后会在后台运行某个方法,例如下载文件,下载完成后可能需要调用某个方法来刷新界面,这时候可能没法在下载的函数中回调。NSNotificationCenter(通知)是一个很好的选择。 通知使用起来非常的简单: 1. 定义将要调用的方法:

心灵的流放地, 共同的精神家园 711
上一篇: iOS CoreData之单表操作(增删改查)
下一篇: iOS 画板的简单实现
Micro90
博客等级 码龄12年 12粉丝 37原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值