这是一个观察者模式。
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(receive:) name:nilobject:nil];
name:监听名称为xx的信息 如nil监听所有
object:监听object为xx的信息 如nil监听所有
-(void)receive:(NSNotification*)ns{
NSLog(@"ns.name:%@",ns.name);
NSLog(@"ns.object:%@",ns.object);
NSLog(@"ns.userInfo size:%d",ns.userInfo.count);
for(id a in ns.userInfo){
NSLog(@"a:%@",a);
}
}
NSNotification对象含有.name .object .userInfo 三个成员对象 分别为NSString NSObject NSDictionary
- (IBAction)btPressed:(id)sender {
if(i%2){
[[NSNotificationCenterdefaultCenter]postNotificationName:@"test"object:@"123"];
}else{
[[NSNotificationCenterdefaultCenter]postNotificationName:@"test"object:@"abc"];
}
i++;
NSLog(@"button Pressed");
}
有三种发送方法
- (void)postNotification:(NSNotification *)notification;
- (void)postNotificationName:(NSString *)aName object:(id)anObject;
- (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
实际上都一样 都是发送一个NSNotification 就是看你自己处理还是系统处理了。
相关推荐
本文将详细介绍如何通过NSNotification解决iOS中的键盘遮挡问题。 首先,我们需要了解键盘的通知类型:UIKeyboardDidShowNotification 和 UIKeyboardDidHideNotification。这两个通知分别在键盘显示和隐藏时发送,...
在iOS开发中,NSNotification是Objective-C中的一个关键概念,它属于Foundation框架,用于对象间通信。NSNotification机制允许对象广播消息给其他对象,而无需这些对象之间有直接的引用关系,这种设计模式被称为发布...
在iOS和macOS开发中,`delegate`、`NSNotification`和`block`是三种常见的对象间通信机制。它们各自有着不同的特性和应用场景,理解这些差异对于优化代码结构和提高程序性能至关重要。 首先,我们来看看`delegate`...
9. **通知与代理**:理解NSNotification和Delegate协议是iOS编程的关键,源码会展示如何在对象间通信和监听特定事件。 10. **Core Location**:iOS 5引入了用于获取地理位置信息的Core Location框架。学习如何请求...
总结来说,"iOS实战项目(项目架构)"涵盖了从项目规划到实际编码的各种核心知识点,包括选择合适的架构模式、运用委托代理进行对象间通信以及利用NSNotification实现全局事件监听。这些内容对于iOS开发者来说,无论是...
iOS中的NSNotification机制允许对象之间进行异步通信,无需直接耦合。当一个对象需要向其他对象广播消息时,可以发送一个通知,接收者可以通过注册监听器来响应这些通知。在“简单豆瓣”应用中,可能会用到通知来...
通知中心(NSNotification)是iOS中传递事件的一种方式,播放器可能利用它来通知其他视图或控制器当前的播放状态,如播放、暂停、结束等。 最后,性能优化也是关键。例如,音频缓冲策略可以确保流畅的播放体验,...
- NSNotificationCenter:了解如何发布和接收NSNotification进行事件传递。 9. **图片加载与缓存**: - SDWebImage库:学习集成第三方库,实现网络图片的加载和缓存。 10. **权限管理**: - 获取用户权限:如...
这涉及到NSNotification或Delegate模式。 9. **数据持久化**: 如果应用需要保存用户的偏好设置或扫描记录,可能会使用UserDefaults、CoreData或者SQLite数据库。 10. **测试与调试**: iOS开发者需要使用Xcode ...
- (void)networkChanged:(NSNotification *)note { NetworkStatus status = [reach currentReachabilityStatus]; if (status == ReachableViaWiFi) { NSLog(@"已连接到WiFi"); } else { NSLog(@"未连接到WiFi或...
在Swift中,我们可以监听屏幕截图事件,通过`NSNotification.Name.UIApplicationDidReceiveRemoteNotification`通知来判断是否发生了截屏操作。以下是一个简单的示例代码: ```swift import UIKit class ...
8. **通知与代理**:理解NSNotification和Delegate模式,它们是iOS中组件间通信的重要方式。 9. **动画**:Core Animation是iOS中强大的动画框架,用于创建流畅的视觉效果。 10. **推送通知**:理解Apple Push ...
9. **通知与代理**:为了实现实时更新,如音乐播放进度,可以使用KVO(Key-Value Observing)或NSNotification,或者采用代理模式来传递信息。 10. **性能优化**:考虑到音乐文件的大小,优化下载和播放性能是很...
- (void)itemDidFinishPlaying:(NSNotification *)notification { AVPlayerItem *playerItem = notification.object; [playerItem seekToTime:kCMTimeZero]; [player play]; } ``` 此外,还可以监听AVPlayer的...
在iOS开发中,Notification是一种非常重要的通信机制,它允许应用程序的不同组件之间相互通信,而无需直接耦合。本文将详细讲解iOS中的Notification机制,以及如何在iOS 5中使用Notification进行参数传递。 首先,...
7. **通知(Notification)**:通过NSNotification和NSNotificationCenter,可以在应用程序的不同部分之间传递消息。包括本地通知和远程推送通知。 8. **动画**:利用CAAnimation和UIView的动画方法可以创建丰富的...
在iOS中,通常使用`NSNotification`、KVO(Key-Value Observing)以及协议和代理来实现这一模式。 1. **NSNotification**:苹果提供的系统级观察者模式实现。开发者可以注册观察者去监听特定的通知,当被观察的对象...
在iOS中,NSNotification是Foundation框架的一部分,用于在应用程序的各个部分之间发送消息。这些消息可以是简单的事件通知,也可以包含额外的数据,即所谓的“传值”。 **创建Notification** 创建一个...
- (void)batteryStatusChanged:(NSNotification *)notification { UIDevice *device = [UIDevice currentDevice]; UIDeviceBatteryState batteryState = device.batteryState; float batteryLevel = device....