真机调试 与 响应者链

开发者账号:
  1. 公司/个人:99$每年,可以有100台机器调试。
  2. 企业:299$每年,可以添加无数台机器,但是不能上传到 appstore

写信 :先用哈希算法生成信件的摘要,然后使用私钥对摘要进行加密,生成“数字签名”,将这个签名附在信件下面,一起发送。
收信 :先用公钥解密数字签名,再对信件本身用哈希算法解析。

公钥和私钥配对使用,私钥一般是自己拿着的,公钥是给别人的
公钥加密后用私钥解密,私钥加密后用公钥解密
证书中心(CA),是用来保证信息传递更加安全的一个中间机构,会颁发数字证书,在传数据的时候,需要附加上数字证书

当提交应用程序给苹果审批和部署的时候,首先必须用自己的签名标识为应用程序签名,同时随程序一起提交签名证书,然后苹果验证该程序代码是否来自有效的已注册的开发者,苹果用她自己的签名证书为你的已签名的应用程序签名,然后你的应用程序才能在iPhone等苹果设备上正常的运行

所有的iPhone应用程序在iOS设备上运行之前必须用合的signing identity(签名标识)进行签名。

一、为了在自己的iOS设备开发而做应用程序签名,需要:

  1. 私钥
  2. iPhone 开发者证书
  3. Development Provisioning profile(授权文件)

二、为了让自己的开发的应用程序发布在AppStore,需要:

  1. 私钥
  2. iPhone Distribution 证书
  3. AppStore Distribution Provisioning profile

三、为了让自己的应用程序在Ad Hoc上,需要:

  1. 私钥
  2. iPhone Distribution证书
  3. Ad Hoc Distribution Provisioning profile

私钥是在生成认证签名请求(CSR)时创建的, 在CSR提交和通过后,可以在iPhone Developer Program Provisioning Portal里创建和下载证书以及provisioning profiles.

Signing identity (签名标识) 由私有加密key 和数字证书组成,在iOS开发中, XCode 用私钥来 签署程序,这样程序就可以在iOS开发设备上运行或者提交到App Store上。 公钥包含在iOS开 发者/发布证书,用来认证已签名的程序。 Provisioning profiles 用来告知XCode用哪个证书/私 钥组合来签署程序,开发设备也通过它来决定如何认证安装在设备上的程序。

真机调试:

苹果开发者账号和iPhone
进入开发者网站,developer.apple.com–>member center(会员中心)–>Certificates,Identifiers&Profiles,首先第一步生成开发者证书,第二步生成appid,第三步添加设备,第四步生成描述文件(描述文件是关联前三步),第五步打开xcode,设置猫叔文件、证书等信息,选择要运行的设备。

公司开发者账号:
账号:dorayo.student@hnqingyun.com
密码:Hnqingyun123


摘要

在IOS中,由响应者链来对事件进行响应,所有事件响应的类都是UIResponder的子类,响应者链是一个由不同对象组成的层次结构,其中的每个对象将依次获得响应事件消息的机会。

响应过程步骤:事件分发,事件响应

http://www.mamicode.com/info-detail-499848.html

事件(Events)
  1. 触摸事件(Touch Events):单点触摸,多点触摸(Multitouch)及各种手势(Gesture Recognizers)
  2. 晃动事件(Motion Events):重力加速度等传感器
  3. 远程控制事件(Remote -Control Events):线控耳机、airplay
事件分发(Event Delivery)

触摸事件:触摸 -> 硬件中断 -> UIKit封装成UIEvent对象(针对触摸事件)-> 当前运行的应用程序的事件队列 -> AppDelegate(代理) -> UIApplication对象 -> key window -> Hit-Test View

iOS系统检测到手指触摸(Touch)操作时会将其打包成一个UIEvent对象,并放入当前活动Application的事件队列,单例的UIApplication会从事件队列中取出触摸事件并传递给单例的UIWindow来处理,UIWindow对象首先会使用hitTest:withEvent:方法寻找此次Touch操作初始点所在的视图(View),此方法会在其视图层级结构中的每个视图上调用pointInside:withEvent:(该方法用来判断点击事件发生的位置是否处于当前视图范围内),pointInside:withEvent:返回YES,则继续逐级调用,直到找到touch操作发生的位置,这个视图也就是要找的hit-test view,需要将触摸事件传递给其处理,这个过程称之为hit-test view

隐藏的视图、禁止用户操作的视图、alpha<0.01的视图 和 子视图中超过父视图的部分 不会被找到,可以通过重写pointinside:withEvent:方法来处理第四种情况

其他事件:(其他事件的事件分发前边是一样的)…-> key window -> First Responder(第一响应着)

事件响应

路线图:First Responser – > ViewController –> The Window – >The Application – > App Delegate

一般来说,第一响应者是个视图对象或者其子类对象,当其被触摸后事件被交由它处理,如果它不处理,事件就会被传递给它的视图控制器对象viewcontroller(如果存在),然后是它的父视图(superview)对象(如果存在),以此类推,直到顶层视图。接下来会沿着顶层视图(top view)到窗口(UIWindow对象)再到程序(UIApplication对象)。如果整个过程都没有响应这个事件,该事件就被丢弃。一般情况下,在响应者链中只要由对象处理事件,事件就停止传递。

响应者链(Responder Chain)

响应者对象(Responder Object):指的是有响应和处理事件能力的对象。响应者链就是由一系列的响应者对象构成的一个层次结构。

UIResponder是所有响应对象的基类,在UIResponder类中定义了处理各种事件的接口。我们熟悉的UIApplication、 UIViewController、UIWindow和所有继承自UIView的UIKit类都直接或间接的继承自UIResponder,所以它们的实例都是可以构成响应者链的响应者对象

响应者链的特点

  1. 响应者链通常是由视图(UIView)构成的;
  2. 一个视图的下一个响应者是它视图控制器(UIViewController)(如果有的话),然后再转给它的父视图(Super View);
  3. 视图控制器(如果有的话)的下一个响应者为其管理的视图的父视图;
  4. 单例的窗口(UIWindow)的内容视图将指向窗口本身作为它的下一个响应者需要指出的是,Cocoa Touch应用不像Cocoa应用,它只有一个UIWindow对象,因此整个响应者链要简单一点
  5. 单例的应用(UIApplication)是一个响应者链的终点,它的下一个响应者指向nil,以结束整个循环。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值