NSNotification --关于通知】的更多相关文章

一. 通知(NSNotification)的发送(Post)和注册(add)都必须借助于通知中心(NSNotificationCenter) 发送通知: NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; [center postNotificationName:@"通知名字" object:self userInfo:@{@"key":@"object"}];…
通知中心,它是IOS程序内部的一种消息广播机制,通过它,可以实现无引用关系的对象之间的通信.通知中心他是基于观察者模式,它只能进行程序内部通信,不能跨应用程序进程通信.当通知中心接受到消息后会根据设置,将消息发送给订阅者,这里的订阅者可以有多个. 通知中心与代理模式类似,都可以实现多个对象间通信,通知中心可以将一个通知发送给多个监听者,而代理模式每个对象只能添加一个代理.但无论是那种模式,都是一种低耦合的设计,实现对象间的通信. 使用通知中心的步骤 1.注册观察者对某个事件(以字符串命名)感兴趣…
1.Notification Center的概念: 它是一个单例对象,允许当事件发生时通知一些对象,让对象做出相应反应. 它允许我们在低程度耦合的情况下,满足控制器与一个任意的对象进行通信的目的. 这种模式的基本特征是为了让其他的对象能够接收到某种事件传递过来的通知,主要使用通知名称来发送和接收通知. 基本上不用考虑其它影响因素,只需要使用同样的通知名称,监听该通知的对象(即观察者)再对通知做出反应即可. 1)优势: 1.不需要编写多少代码,实现比较简单: 2.对于一个发出的通知,多个对象能够做…
1.   通知在iOS中应用非常广泛,合理的应用通知可以减少冗余代码,使我们的代码层次结构变了更加的清晰明了,利于程序猿读写.它主要分为不可见通知可见通知两种: 1.1 不可见通知,主要是有系统发出的,没有界面提示,用户无法用肉眼直接捕捉到的.如键盘弹起事件. 1.2 可见通知,主要是哪些在前台运行的应用程序发生了一些用户感兴趣的事,或者服务器端为了给用户发送某些特性的消息,给用户发出的一种推送通知. 其中可见通知又分为本地推送,不需要连接网络,在手机系统内部就能调用发出的通知,如起床闹铃. 远…
键值观察(KVO)是基于键值编码的一种技术. 利用键值观察可以注册成为一个对象的观察者,在该对象的某个属性变化时收到通知. 被观察对象需要编写符合KVC标准的存取方法,编写键值观察分为以下三步: (1)注册成为观察者. (2)定义KVO的回调. (3)移除观察者. +新建一个类Student,属性为name,age. @interface Student : NSObject @property(copy,nonatomic) NSString * name; @property(nonatom…
1.通知中心 每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信 任何一个对象都可以向通知中心发布通知(NSNotification),描述自己在做什么.其他感兴趣的对象(Observer)可以申请在某个特定通知发布时(或在某个特定的对象发布通知时)收到这个通知 通知与代理的区别:通知是多对多的(类似android中的广播),代理是一对一的. 比如,键盘弹出的时候也会发送一条通知. 2.通知(NSNotification) 一个完整…
通知介绍 每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信 任何一个对象都可以向通知中心发布通知(NSNotification),描述自己在做什么. 其他感兴趣的对象(Observer)可以申请在某个特定通知发布时(或在某个特定的对象发布通知时)收到这个通知 初始化通知中心 // 初始化通知中心 NSNotificationCenter *center =[NSNotificationCenter defaultCenter];…
一.发送通知 NSNotification *note = [NSNotification notificationWithName:@"通知的名称,随便写,例如:你妈叫你回家吃饭" object:self userInfo:@{@"time":@"11:30", @"desc":@"回家吃饭" }]; NSNotificationCenter *center = [NSNotificationCenter…
UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是整个应用程序的一个抽象,负责存储应用程序的状态. 根据第四个参数创建了一个应用程序代理类对象 所谓代理,及帮助另一个对象做事情.上面第一步中创建的应用程序对象只负责存储应用程序的状态,但不提供响应,而是给代理发消息,由代理负责针对不同的状态提供响应.比如说:程序一启动,代理就要响应一下,说明弹出的第…
1.简介 IOS是由苹果公司为iPhone.iPod touch和iPad等设备开发的操作系统. 2.知识点 iPhone OS(现在叫iOS)是iPhone, iPod touch 和 iPad 设备的操作系统. iOS系统架构:基于UNIX.分为4个层次:核心操作系统层(最底层)Core OS核心服务层 Core Services媒体层 Media可触摸层 Cocoa Touch 1.Core OS: 它是用FreeBSD和Mach所改写的Darwin, 是开源.符合POSIX标准的一个Un…
iOS经典面试题   前言 写这篇文章的目的是因为前两天同学想应聘iOS开发,从网上找了iOS面试题和答案让我帮忙看看.我扫了一眼,倒吸了一口冷气,仔细一看,气的发抖.整篇题目30多个没有一个答案是对的,总结这篇面试题的作者对iOS机制根本就是一知半解就敢发到网上,不管有心还是无心都是坑害新人.所以在这里总结一下这几年面试别人和被别人面试遇到的一些我认为比较好的基础题目分享给大家,进阶题目在后续补充.我的理解如果有错漏请一定指出,非常感谢! 从12年开始做面试官到现在已经三个年头了,这期面过很多…
前言 写这篇文章的目的是因为前两天同学想应聘iOS开发,从网上找了iOS面试题和答案让我帮忙看看.我扫了一眼,倒吸了一口冷气,仔细一看,气的发抖.整篇题目30多个没有一个答案是对的,总结这篇面试题的作者对iOS机制根本就是一知半解就敢发到网上,不管有心还是无心都是坑害新人.所以在这里总结一下这几年面试别人和被别人面试遇到的一些我认为比较好的基础题目分享给大家,进阶题目在后续补充.我的理解如果有错漏请一定指出,非常感谢! 从12年开始做面试官到现在已经三个年头了,这期面过很多形形色色的开发,有腾讯…
1.同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2.异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行 3.GET请求,将参数直接写在访问路径上.操作简单,不过容易被外界看到,安全性不高,地址最多255字节: 4.POST请求,将参数放到body里面.POST请求操作相对复杂,需要将参数和地址分开,不过安全性高,参数放在body里面,不易被捕获. 查看源码打印?…
iOS面试指导 一 经过本人最近的面试和对面试资料的一些汇总,准备记录这些面试题,以便ios开发工程师找工作复习之用,本人希望有面试经验的同学能和我同时完成这个模块,先出面试题,然后会放出答案. 1. 你使用过Objective-C的运行时编程(Runtime Programming)么?如果使用过,你用它做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗? 答案:Objecitve-C的重要特性是Runtime(运行时),在#import <objc/runtime.h> 下能看…
1. 你使用过Objective-C的运行时编程(Runtime Programming)么?如果使用过,你用它做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗?  Objecitve-C的重要特性是Runtime(运行时),在#import <objc/runtime.h> 下能看到相关的方法,用过objc_getClass()和class_copyMethodList()获取过私有API;使用  ```objective-cMethod method1 = class_get…
一. 属性传值   将A页面所拥有的信息通过属性传递到B页面使用 很常用的传值,也很方便,但是要拿到类的属性.例如: B页面定义了一个naviTitle属性,在A页面中直接通过属性赋值将A页面中的值传到B页面. A页面DetailViewController.h文件 #import <UIKit/UIKit.h> #import "DetailViewController.h" @interface RootViewController :UIViewController&…
1 iOS基础 1.1 父类实现深拷贝时,子类如何实现深度拷贝.父类没有实现深拷贝时,子类如何实现深度拷贝. 深拷贝同浅拷贝的区别:浅拷贝是指针拷贝,对一个对象进行浅拷贝,相当于对指向对象的指针进行复制,产生一个新的指向这个对象的指针,那么就是有两个指针指向同一个对象,这个对象销毁后两个指针都应该置空.深拷贝是对一个对象进行拷贝,相当于对对象进行复制,产生一个新的对象,那么就有两个指针分别指向两个对象.当一个对象改变或者被销毁后拷贝出来的新的对象不受影响. 实现深拷贝需要实现NSCoying协议…
属性传值 将A页面所拥有的信息通过属性传递到B页面使用 B页面定义了一个naviTitle属性,在A页面中直接通过属性赋值将A页面中的值传到B页面. A页面DetailViewController.h文件 #import <UIKit/UIKit.h> #import "DetailViewController.h" @interface RootViewController :UIViewController<ChangeDelegate> { UITextF…
IOS的Delegate,通俗一点说就是页面之间的传值. 总结一下现在知道的IOS页面之间传值的方式有三种 1.使用NSNotification发送通知的传值 主要是通过NSNotificationCenter发送一个通知,他不知道要把值传给谁,当监听的页面收到通知消息,才会获取到消息. 2.是利用属性来传值,我主要是用到A->B中A页面要跳转到B页面,也就把B中需要A的参数通过preparFroSegue方法从A传给B 3.通过NSUserDefault来传值,其主要思想是把值写到本地化的一个…
OneV‘s Den在博客里出了10道iOS面试题,用他的话是:"列出了十个应聘Leader级别的高级Cocoa/CocoaTouch开发工程师所应该掌握和理解的技术" .  在这里給一份我的答案.   1. 你使用过Objective-C的运行时编程(Runtime Programming)么?如果使用过,你用它做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗?   Objecitve-C的重要特性是Runtime(运行时),在#import <objc/runt…
1.基本介绍 IOS苹果公司iPhone.iPod touch和iPad操作系统和其他设备的发展. 2.知识点 1.IOS系统 iPhone OS(现在所谓的iOS)这是iPhone, iPod touch 和 iPad 设备的操作系统. 1.Core OS: 它是用FreeBSD和Mach所改写的Darwin, 是开源.符合POSIX标准的一个Unix核心.这一层包括或者说是提供了整个iPhone OS的一些基础功能,比方:硬件驱动, 内存管理.程序管理,线程管理(POSIX).文件系统,网络…
iOS面试知识点 现在进入本篇的正题.本篇的面试题是我认为比较好的iOS开发基础知识点,希望大家看过这后在理解的基础上掌握而不是死记硬背.死记硬背很快也会忘记的. 1 iOS基础 1.1 父类实现深拷贝时,子类如何实现深度拷贝.父类没有实现深拷贝时,子类如何实现深度拷贝. 深拷贝同浅拷贝的区别:浅拷贝是指针拷贝,对一个对象进行浅拷贝,相当于对指向对象的指针进行复制,产生一个新的指向这个对象的指针,那么就是有两个指针指向同一个对象,这个对象销毁后两个指针都应该置空.深拷贝是对一个对象进行拷贝,相当…
#import <UIKit/UIKit.h> @class FSTextView; typedef void(^FSTextViewHandler)(FSTextView *textView); IB_DESIGNABLE @interface FSTextView : UITextView /** 便利构造器. */ + (instancetype)textView; /** 设定文本改变Block回调. (切记弱化引用, 以免造成内存泄露.) */ - (void)addTextDidC…
在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是整个应用程序的一个抽象,负责存储应用程序的状态. 根据第四个参数创建了一个应用程序代理类对象 所谓代理,及帮助另一个对象做事情.上面第一步中创建的应用程序对象只负责存储应用程序的状态,但不提供响应,而是给代理发消息,由代理负责针对不同的状态提供响应.比如说:程序一启动,代理就要响应一下,说明弹出的第一个界面是谁.…
1.简介 IOS是由苹果公司为iPhone.iPod touch和iPad等设备开发的操作系统. 2.知识点 iPhone OS(现在叫iOS)是iPhone, iPod touch 和 iPad 设备的操作系统. iOS系统架构:基于UNIX.分为4个层次:核心操作系统层(最底层)Core OS核心服务层 Core Services媒体层 Media可触摸层 Cocoa Touch 1.Core OS: 它是用FreeBSD和Mach所改写的Darwin, 是开源.符合POSIX标准的一个Un…
1.OC的runtime运行机制1> runtime,运行时机制,它是一套C语言库2> 实际上我们编写的所有OC代码,最终都是转成了runtime库的东西,比如类转成了runtime库里面的结构体等数据类型,方法转成了runtime库里面的C语言函数,平时调方法都是转成了objc_msgSend函数(所以说OC有个消息发送机制,消息的发送是在runtime时执行的)3> 可以说runtime是OC的底层实现,是OC的幕后执行者4> 有了runtime库,能做什么事情呢?runtim…
通知 一个完整的通知一般包含3个属性: - (NSString *)name; // 通知的名称 - (id)object; // 通知发布者(是谁要发布通知) - (NSDictionary *)userInfo; // 一些额外的信息(通知发布者传递给通知接收者的信息内容) n初始化一个通知(NSNotification)对象 + (instancetype)notificationWithName:(NSString *)aName object:(id)anObject; + (inst…
Swift创建Notification通知 创建一个SingleView Application 打开AppDelegate.swift,在方法 application(application:UIApplication,didFinishLaunchingWithOptions launchOptions: NSDictionary?) 中输入代码: func application(application: UIApplication, didFinishLaunchingWithOptio…
iOS传值方式之5:通知传值 第一需要发布的消息,再创建NSNotification通知对象,然后通过NSNotificationCenter通知中心发布消息(NSNotificationCenter单例) - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { // 创建需要传递的参数 NSDictionary *dic = @{ @"name":@"copute…
通知 是在跳转控制器之间常用的传值代理方式,除了代理模式,通知更方便.便捷,一个简单的Demo实现通知的跳转传值. iOS通知传值的使用 输入所要发送的信息 ,同时将label的值通过button方法调用传递, (IBAction)buttonClick:(id)sender { //添加 字典,将label的值通过key值设置传递 NSDictionary dict =[[NSDictionary alloc] initWithObjectsAndKeys:self.textFieldOne.…