ios通知_ios通知音下载 - CSDN
精华内容
参与话题
  • iOS 通知(NSNotification)的简单使用

    万次阅读 2018-09-12 09:40:32
    通知:NSNotification,是iOS开发中一种重要的设计模式,它的实质是程序内部提供的一种广播机制。把接受到的消息根据内部消息转发表,将消息转发给需要的对象。 通知这种设计模式,在开发中常用来不同类之间的通信...

    通知:NSNotification,是iOS开发中一种重要的设计模式,它的实质是程序内部提供的一种广播机制。把接受到的消息根据内部消息转发表,将消息转发给需要的对象。

    通知这种设计模式,在开发中常用来不同类之间的通信,也就是常说的页面之间的传值。当然它不仅仅只有这一种应用场景,还有一种常用场景是用来控制一些属性或者控件,使得这些属性或控件在不同情况下发生响应的变化。在我以前的一个项目中就有这样的场景出现:

    项目需求:每次打开app和每次需要下载时监控网络状态变化,当时WiFi状态是打开自动下载开关,非WiFi状态时关闭自动下载开关。

    对于这样的需求,就可以使用通知去实现,而且很简单,只需要在需要发送通知的地方,注册、发送通知,在开关存在的地方接受通知消息,根据通知去控制开关是开启还是关闭。

    那么,下面介绍如何使用通知。

    首先先介绍一下几个类:

    1、NSNotification

    这个类是通知类,由这个类创建的对象是一个通知对象,也可以理解为是一个消息对象。类中有三个成员变量:

    name:是消息对象的唯一标识,接受通知消息时用来辨别

     

    @property (readonly,copy)NSNotificationName name;

    object:一个对象,可以理解为针对某个对象的消息

    @property (nullable,readonly,retain)id object;

    userInfo:一个字典,用来传值

    @property (nullable,readonly,copy)NSDictionary *userInfo;

     

    NSNotification初始化:

    对象方法初始化一个通知对象,并给通知对象的属性赋值

     

    - (instancetype)initWithName:(NSNotificationName)name object:(nullableid)object userInfo:(nullableNSDictionary *)userInfoNS_AVAILABLE(10_6, 4_0) NS_DESIGNATED_INITIALIZER;

    类方法创建一个通知对象,这个方法没有userInfo这个属性的初始赋值,所以用来发送无传值的通知

    + (instancetype)notificationWithName:(NSNotificationName)aName object:(nullableid)anObject;

    类方法初始化一个通知对象,并给通知对象的属性赋值

    + (instancetype)notificationWithName:(NSNotificationName)aName object:(nullableid)anObject userInfo:(nullableNSDictionary *)aUserInfo;

     

    注意:NSNotification不可以使用init进行初始化。

     

    2、NSNotificationCenter

    这个类是通知中心类,内部实现是单利模式,每个程序都有一个默认的通知中心,用来调度通知的发送和接受。

    通知中心类相关方法:

    a、接收通知的方法:

    添加观察者,可以指定一个方法、名称和对象,接受到通知时执行这个指定的方法。这里的name就是通知类的name,只有对应才能接受到通知。

     

    - (void)addObserver:(id)observer selector:(SEL)aSelector name:(nullableNSNotificationName)aName object:(nullableid)anObject;

     

    b、发送通知的方法:

     

    发送通知,参数是一个通知对象

     

    - (void)postNotification:(NSNotification *)notification;

    发送通知,参数是通知的名称,指定的对象

    - (void)postNotificationName:(NSNotificationName)aName object:(nullableid)anObject;

    发送通知,参数是通知的名称,指定的对象和传递的参数

    - (void)postNotificationName:(NSNotificationName)aName object:(nullableid)anObject userInfo:(nullableNSDictionary *)aUserInfo;

    上面这三个方法虽然写法不同,但是功能一样,使用哪一个方法取决于NSNotification类如何创建对象。后两种方法其实就是初始化通知并发送通知,将通知对象的初始化和发送方法结合。

     

    c、移除通知的方法:

    移除该检测对象(observer)下的所有通知

     

    - (void)removeObserver:(id)observer;

    根据通知名称(aName),移除该检测对象(observer)下的一个通知

    - (void)removeObserver:(id)observer name:(nullableNSNotificationName)aName object:(nullableid)anObject;

     

     

     

    一个通知的初始化,发送,接收。就是对上面这些方法的使用。

    下面,示例说明:

     

     

    #import "ViewController.h"

     

    @interface ViewController ()

    {

        UILabel *label;

        UIButton *button;

    }

    @end

     

    @implementation ViewController

     

    - (void)viewDidLoad {

        [superviewDidLoad];

        

        //创建视图方法

        [selfsetUI];

        //创建通知中心对象

        NSNotificationCenter *center = [NSNotificationCenterdefaultCenter];

        //注册、接收通知

        [center addObserver:selfselector:@selector(chanegeLabelText:)name:@"notification"object:nil];

    }

     

    - (void)setUI{

        label = [[UILabelalloc]initWithFrame:CGRectMake(100, 200, 200, 30)];

        label.backgroundColor = [UIColoryellowColor];

        label.text =@"没有接收到通知";

        [self.viewaddSubview:label];

        

        button = [UIButtonbuttonWithType:UIButtonTypeCustom];

        button.frame =CGRectMake(100, 300, 200, 30);

        [buttonsetTitle:@"发送通知"forState:UIControlStateNormal];

        [buttonsetBackgroundColor:[UIColorblueColor]];

        [buttonaddTarget:selfaction:@selector(post)forControlEvents:UIControlEventTouchUpInside];

        [self.viewaddSubview:button];

    }

     

    //按钮点击方法

    - (void)post{

        //初始化一个通知对象,名称是 notification  没有指定对象  穿的值是一个字典@{@"key":@"an object"}

        NSNotification *notification = [NSNotificationnotificationWithName:@"notification"object:niluserInfo:@{@"key":@"接收到了通知"}];

        

        [[NSNotificationCenterdefaultCenter]postNotification:notification];

    }

     

    //接收通知后调用的方法

    - (void)chanegeLabelText:(NSNotification *)noti{

     

        //这个方法的参数就是发送通知postNotification:方法的参数发送过来额通知。当要使用传递的userInfo的时候,就要使用noti解析出userInfo中需要的字段

        label.text = [noti.userInfoobjectForKey:@"key"];

    }

     

     

    - (void)viewDidDisappear:(BOOL)animated{

       [super viewDidDisappear:animated];

        //在页面消失的回调方法中移除通知。

        [[NSNotificationCenterdefaultCenter]removeObserver:selfname:@"notification"object:nil];

    }

     

    @end

    点击按钮前:                      点击按钮后:

          

    在上面的显示中可以看到代码没有问题。

    上面的示例只是为了介绍通知的使用而写的,在实际开发中并不会有这样实现功能的做法。通知的使用是为了实现不同控制器,或者不同类之间的通信从而实现一些解耦。在同一个类中一般是没有信息传递的。

    而且,要牢记一点,通知既然是程序内部的一种广播机制,那么它的存在就是通信。

    关于通知的使用就是,注册、接收通知(addObserver)--->发送通知(postNotification)--->移除通知(removeObserver)。

    这里关于移除通知和前面的KVO那篇文章中移除KVO一样,要在合理的位置移除。

     

    展开全文
  • iOS通知用法

    千次阅读 2013-10-19 22:53:23
    要测试通知需要两个条件:真机和开发者帐号,不然没法测试。 对照如上图我们介绍文章后面的一些概念 1、Provider: 就是对应后面介绍的 PushMeBaby工程(用来向APNS发送消息) 2、APNS: Apple_Push_...

    要测试通知需要两个条件:真机和开发者帐号,不然没法测试。

    对照如上图我们介绍文章后面的一些概念

    1、Provider: 就是对应后面介绍的  PushMeBaby工程(用来向APNS发送消息)

    2、APNS: Apple_Push_Notification_Service 苹果消息推送服务器

    3、iphone:用来接受APNS下发下来的消息推送

    4、Client App: 对应后面提到的 PushClient 工程,安装在iphone上面的程序 (用来接收iphone传递APNS下发的消息到制定的一个客户端 app)

    -------------------------------------------------------------------------------------------------------------------------------------------------------

    介绍完以后几个概念以后,现在先申明下在以下的工程配置中要用到 苹果开发者帐号 去下载 aps_developer_identity.cer 然后重命名apns.cer放在 pushMeBaby工程中才可以顺利的配置好推送的一些功能。

    ----------------------------------------------------------------------------------------------------------------------------------------------------

    现在进入正题

    1、获取deviceToken

    在 PushClient工程的的main.m文件中的

    - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

    方法中获取到 deviceToken,用来填充在 PushMeBaby中向服务器发送信息
    2、获取在服务端所要的许可证 (要用到开发者帐号中的相关配置)
      1、    首先登录https://developer.apple.com/devcenter/ios/index.action  登录帐号
            

        2、 

             

       3、 

        4、下载 push ssl certificate 把原文件名称aps_developer_identity.cer -------->重命名为apns.cer

      5、下载下来的testpush.mobileprovision配置到工程中

    前期的工程配置和一些证书获取完毕以后我们要下载工程文件PushMeBaby 和 PushClient

    下载地址:

    http://download.csdn.net/source/3182374

    下载完成以后我们要做两个事情

    1、把刚才获取的apns.cer文件拷贝到pushMeBaby工程文件同级目录下

    2、把 pushClient安装到真机上运行后获取 deviceToken

    (其实就是 push client中

    - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

    {

    }

    中的deviceToken

    )

    记住然后在工程 pushMeBaby中用刚才获取的40为字符替换掉在

    ApplicationDelegate.m

    -(id)init

    {

    ...

    self.deviceToken = "刚才获取的deviceToken";

    }

    运行工程后如图

    其中如图上面的Device Token就是要push的机子

    然后运行pushMeBaby运行正常的话就可以看到如下的效果,APNS

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
        
        // 启动时接收挂起时候收到的通知
        NSDictionary *remoteDic = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
        UILabel *lable = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, 320, 30)];
        lable.tag = 101;
        lable.backgroundColor = [UIColor redColor];
        lable.textColor = [UIColor whiteColor];
        if (remoteDic) {
            lable.backgroundColor = [UIColor purpleColor];
            lable.text = [[remoteDic objectForKey:@"aps"] objectForKey:@"alert"];
        }
        [self.window addSubview:lable];
        
        // 注册通知
        [application registerForRemoteNotificationTypes: UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound |UIRemoteNotificationTypeAlert];

        return YES;
    }

    // 接收到token
    - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken NS_AVAILABLE_IOS(3_0) {
        

        NSLog(@"deviceToken: %@", deviceToken);
        
    }
    // 发生错误
    - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error NS_AVAILABLE_IOS(3_0) {
        NSLog(@"%@", error);
    }

    // 接收到远程通知,程序运行中接收
    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo NS_AVAILABLE_IOS(3_0) {
        NSLog(@"%@", @"didReceiveRemoteNotification");

        UILabel *lable = (UILabel *)[self.window viewWithTag:101];
        lable.backgroundColor = [UIColor blackColor];
        lable.text = [[userInfo objectForKey:@"aps"] objectForKey:@"alert"];
        NSLog(@"%@", userInfo);
    }
    // 接收到本地通知
    - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification NS_AVAILABLE_IOS(4_0){
        NSLog(@"%@", @"didReceiveLocalNotification");
        NSLog(@"%@", notification);

    }

    - (void)applicationWillResignActive:(UIApplication *)application
    {
        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
        // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
    }

    - (void)applicationDidEnterBackground:(UIApplication *)application
    {
        // 活动的时候取消ICO图标数字
        [application setApplicationIconBadgeNumber:0];
        // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
        // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
    }


     
    展开全文
  • iOS - 通知

    千次阅读 2018-06-17 08:47:23
    // 创建通知的两种形式 //[NSNotification notificationWithName:<#(nonnull NSString *)#> object:<#(nullable id)#>] //[NSNotification notificationWithName:<#(nonnull NSString *)#> object...
    // 创建通知的两种形式
    //[NSNotification notificationWithName:<#(nonnull NSString *)#> object:<#(nullable id)#>]
    //[NSNotification notificationWithName:<#(nonnull NSString *)#> object:<#(nullable id)#> userInfo:<#(nullable NSDictionary *)#>]
    
    
    
    // 发送通知的三种形式
    
    /**
     * 1. 直接将一个创建好的通知发送出去
     *
     * Notification    创建好的通知
     *
     */
    
    //[NSNotificationCenter defaultCenter] postNotification:(nonnull NSNotification *)
    
    
    /**
     * 2. 在发送通知的方法里,创建通知
     *
     * NotificationName :  通知名
     * object           :  通知发布者
     *
     */
    
    //[NSNotificationCenter defaultCenter] postNotificationName:(nonnull NSString *) object:(nullable id)
    
    
    /**
     * 3. 在发送通知的方法里,创建通知
     *
     * NotificationName :   通知名
     * object           :   通知发布者
     * userInfo         :   额外信息
     *
     */
    
    //[NSNotificationCenter defaultCenter] postNotificationName:(nonnull NSString *) object:(nullable id) userInfo:(nullable NSDictionary *)
    
    
    // 接收通知的形式
    //[NSNotificationCenter defaultCenter] addObserver:(nonnull id) selector:(nonnull SEL) name:(nullable NSString *) object:(nullable id)
    
    //[NSNotificationCenter defaultCenter] addObserverForName:(nullable NSString *) object:(nullable id) queue:(nullable NSOperationQueue *) usingBlock:^(NSNotification * _Nonnull note) {}
    
    //[NSNotificationCenter defaultCenter] addObserver:(nonnull NSObject *) forKeyPath:(nonnull NSString *) options:(NSKeyValueObservingOptions) context:(nullable void *)
    
    展开全文
  • iOS 通知机制

    千次阅读 2016-04-24 16:05:21
    任何一个对象都可以向通知中心发布通知,描述自己在做什么,其他感兴趣的对象可以申请在某个特定通知发布时(或者在某个特定的对象发布通知时)收到通知![如下所示](http://img.blog.csdn.net/20160424124752621) **...

    1 通知的发布

    **通知中心(NSNotificationCenter)**
    每一个应用程序都有一个通知中心实例,专门来负责协助不同对象之间的消息通信
    任何一个对象都可以向通知中心发布通知,描述自己在做什么,其他感兴趣的对象可以申请在某个特定通知发布时(或者在某个特定的对象发布通知时)收到通知![如下所示](https://img-blog.csdn.net/20160424124752621)
    **通知(NSNotification)**
    一个完整的通知一般包含3个属性:
    
    - (NSString *)name;   //通知名称
        - (id)object;  // 通知发布者 (是谁要发布通知)
        - (NSDictionary *)userInfo; //一些额外的信息(通知发布者传递给通知接收者的信息内容)
    初始化一个通知对象
    
    + (instancetype) notificationWithName: (NSString *)aName object: (id)onObject;
    +  (instancetype) notificationWithName:(NSString *)aName object:(id)onObject userInfo:(NSDictionary *aUserInfo);
    - (instancetype)initWithName:(NSString *)aName object:(id) object userInfo: (NSDictionary *)userInfo;
    **发布通知**
    通知中心提供了相应的方法来发布通知
    
    - (void) postNotification:(NSNotification *)notification; //发布一个notification通知,可在notification最想中设置通知的名称、通知发布者,额外信息等
        - (void) postNotificationName:(NSString *)aName object:(id)anObject;//发布一个名称为aName的通知,anObject为这个通知的发布者
        - (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary  *)aUserInfo; //发布一个名称为aName的通知,anObject为这个通知的发布者,aUserInfo为额外信息

    2 通知的监听

    **注册通知监听器**
    通知中心提供了方法来注册一个监听通知的监听器(observer)
    - (void) addObserver:(id) observer selector: (SEL) aSeletor name: (NSString *)aName object: (id)anObject;
    //observer:监听器,谁要接听这个通知
    //aSelector: 收到通知后,回调监听器的这个方法,并且把通知对象当做参数传入
    // aName:通知的名称,如果为nil ,那么无论通知的名称是什么,监听器都能收个这个通知
    //anObject:通知发布者,如果为anObject和aName都为nil,监听器都受到所有的通知
    
    
    
    
    - (id) addObserverForName:(NSString *)name object: (id)obj queue: (NSOperationQueue *)queue usingBlock: (void (^)(NSNotification *note))block;
    //name : 通知的名称
    //obj: 通知发布者
    //block:收到对应的通知时,会回调哪个block
    //queue: 决定了block在哪个操作队列中执行,如果传nil,默认在当前队列中同步执行。
    

    3.通知的移除

    通知中心不会保留监听器对象,在通知中心注册过的对象,必须在该对象释放前取消注册,否则,当相应的通知再次出现时,通知中心仍然会向该监听器发送消息,因为相应的监听器对象已经被释放了,所以可能导致应用崩溃
    取消注册监听器:
    通知中心不会保留监听器对象,在通知中心注册过的对象,必须在该对象释放前取消注册,否则,在相应的通知再次出现时,通知中心仍然会向该监听器发送通知,但是相应的监听器已经被释放啦,这就有可能导致应用崩溃

    -(void) removeObserver: (id) observer;
    -(void) removeObserver:(id) observer name: (NSString *)aName (id) object;般在监听器销毁之前取消注册

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

    举个栗子

    举一个杂志公司送杂志的例子

    我新建两个类,一个是CZPerson类,一个是CZCompany 类,各定义一个name属性
    如图所示

    由person对象订阅company的通知,然后company发布通知,
    这里写图片描述

    person收到通知后调用receiveMagazine方法:
    这里写图片描述

    取消监听:

    这里写图片描述

    运行:

    这里写图片描述

    系统中使用了很多通知的例子

    1. UIDevice通知:
      UIDevice类提供了一个单例对象,它代表着设备,通过它可以获得一些设备相关的信息,比如电池电量值(batteryLevel)、电池状态(batteryState)、设备的类型(model,比如iPod、iPhone等)、设备的系统(systemVersion)

    通过[UIDevice currentDevice]可以获取这单例对象

    UIDevice对象会不间断地发布一些通知,下列是UIDevice对象所发布通知的名称常量:
    UIDeviceOrientationDidChangeNotification // 设备旋转
    UIDeviceBatteryStateDidChangeNotification // 电池状态改变
    UIDeviceBatteryLevelDidChangeNotification // 电池电量改变
    UIDeviceProximityStateDidChangeNotification // 近距离传感器(比如设备贴近了使用者的脸部)

    1. 键盘通知:

    键盘状态改变的时候,系统会发出一些特定的通知
    UIKeyboardWillShowNotification // 键盘即将显示
    UIKeyboardDidShowNotification // 键盘显示完毕
    UIKeyboardWillHideNotification // 键盘即将隐藏
    UIKeyboardDidHideNotification // 键盘隐藏完毕
    UIKeyboardWillChangeFrameNotification // 键盘的位置尺寸即将发生改变
    UIKeyboardDidChangeFrameNotification // 键盘的位置尺寸改变完毕

    系统发出键盘通知时,会附带一下跟键盘有关的额外信息(字典),字典常见的key如下:
    UIKeyboardFrameBeginUserInfoKey // 键盘刚开始的frame
    UIKeyboardFrameEndUserInfoKey // 键盘最终的frame(动画执行完毕后)
    UIKeyboardAnimationDurationUserInfoKey // 键盘动画的时间
    UIKeyboardAnimationCurveUserInfoKey // 键盘动画的执行节奏(快慢)

    通知和代理的相同点和不同点:

    共同点
    利用通知和代理都能完成对象之间的通信
    (比如A对象告诉D对象发生了什么事情, A对象传递数据给D对象)

    不同点
    代理 : 一对一关系(1个对象只能告诉另1个对象发生了什么事情)
    通知 : 多对多关系(1个对象能告诉N个对象发生了什么事情, 1个对象能得知N个对象发生了什么事情)

    展开全文
  • iOS通知(一)

    2015-08-03 17:54:31
    iOS中有两种通知:本地通知和远程通知(也叫推送通知)。本地通知不需要使用任何外部基础设施,在设备内部就可以实现。但是推送通知需要有网络连接,还需要服务器配合。本文将给大家介绍如何在iOS中实现本地通知和...
  • iOS 运行程序和进入后台通知

    千次阅读 2016-04-21 17:35:43
    1.创建俩个NSNotificationCenter的 通知a). [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillResignActive:) name:UIApplicationWillResignActiveNotification object...
  • iOS NSNotification的使用

    万次阅读 多人点赞 2012-06-20 11:13:15
    如果在一个类中想要执行另一个类中的方法可以使用通知 1.创建一个通知对象:使用notificationWithName:object: 或者 notificationWithName:object:userInfo:  NSNotification* notification = [NSNotification ...
  • Flutter 原生通信 (四) - iOS 通知 Flutter

    千次阅读 2019-06-18 14:41:52
    4. iOS 通知 Flutter 项目地址 本篇主要介绍如何在 iOS 中发布广播,然后在 dart 端进行订阅 oc 先来查看 OC 篇 #import "BattlePowerPlugin.h" #import &lt;Foundation/NSTime...
  • IOS通知和代理的用法以及优劣比较

    千次阅读 2014-02-13 15:49:53
    IOS通知和代理的用法以及优劣比较
  • 先说一下什么叫通知: iOS中的通知机制又叫消息机制,其包括2类:一类是本地通知;...对于初学者,往往会把iOS中的本地通知,推送通知和iOS通知中心的概念弄混.其实二者之间并没有任何关系,事实上它们都不属于一
  • iOS监听模式系列之通知中心

    千次阅读 2016-06-08 12:07:46
    对于很多初学者往往会把iOS中的本地通知、推送通知和iOS通知中心的概念弄混。其实二者之间并没有任何关系,事实上它们都不属于一个框架,前者属于UIKit框架,后者属于Foundation框架。 通知中心实际上是iOS程序...
  • 简单实现iOS通知中心的功能

    千次阅读 2017-09-15 15:33:31
    iOS自带的NSNotification在日常使用中如果注册完不removeObserver的话会引发crash,开发者在开发过程中往往由于自己的疏忽而忘记写removeObserver,尤其在代码重构过程中很容易忽略掉.那么有没有好的办法自己实现一套...
  • iOS 通知对应的方法多次执行问题

    千次阅读 2019-03-21 10:45:38
    今天在优化图片上传的时候,因为七牛每次都只能上传一张,所以采用了递归的方法,在递归执行完之后,发出通知,然后再将图片名上传给服务器,奇怪的是我发出通知的地方只执行一次,但是注册通知SEL方法却会执行多次...
  • iOS通知删除与添加

    2019-07-19 14:18:48
    添加 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(test) name:@"test" object:nil]; 删除 [[NSNotificationCenter defaultCenter] removeObserver:self name:@"test" object:...
  • iOS 通知传值(逆传)

    千次阅读 2016-04-17 22:46:43
    单休的日子很有意思,很想用周日的时间好好睡觉,但是呢,还是想抽出来点时间回忆一下之前学过的知识,今天把通知逆向传值方法复习一下,慢慢复习,慢慢写,把之前学过的知识都写在博客里,希望自己能够深刻记住这些...
  • iOS通知的添加和移除

    千次阅读 2015-12-02 16:08:38
    如果把通知的添加放在了init、viewDidLoad和dealloc,有可能不会在你期望的时候取消,因为不确定系统会什么时候调用dealloc。这时的现象有可能是收到了很多次你只订阅了一次的通知。 所以一般放到...
  • IOS通知的注册和调用

    2015-10-27 14:26:52
    注册通知[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(changeLabelText:)name:@”ChangeLabelTextNotification”object:nil];通知方法:-(void)changeLabelText:(NSNotification *)...
  • 一个简单的判断需求 用发送通知解决,通知方法不被调用,打断点判断是否在发通知前,通知被移除了或者界面销毁了,或者可能通知名字copy错了,如果以上都没问题那就是线程问题了,我就是加到了同一个线程解决了我的...
  • iOS通知栏小工具开发

    2016-03-17 16:45:13
    Extension通知栏小工具,更方便切换到设置 - GitHub:https://github.com/whde/Extension
  • iOS 提供了一种 "同步的" 消息通知机制,观察者只要向消息中心注册, 即可接受其他对象发送来的消息,消息发送者和消息接受者两者可以互相一无所知,完全解耦。这种消息通知机制可以应用于任意时间和任何对象,观察...
1 2 3 4 5 ... 20
收藏数 86,456
精华内容 34,582
关键字:

ios通知