ios高级开发工程师面试题 ios开发工程师职位描述

iOS面试题:objc中向一个nil对象发送消息将会发生什么?

当OC的可变数组(NSMutableArray)添加 nil 对象时,首先会弹出警告 “Null passed to a callee that requires a non-null argument”,也就是说数组不能传递非空参数。

成都创新互联主营江门网站建设的网络公司,主营网站建设方案,app软件定制开发,江门h5微信小程序定制开发搭建,江门网站营销推广欢迎江门等地区企业咨询

_objc_msgForward是一个函数指针(和 IMP 类型一样),用于消息转发的:当向一个对象发送一条消息,但它并没有实现的时候,_objc_msgForward会尝试做消息转发。

因为给nil对象发送消息不会有反应哦。可以使用__weak关键字声明一个弱变量:强变量:通常在ARC中所有指针变量都是强变量。将对象引用obj_new赋值给obj_old会使obj_new对象自动保持,同时旧对象obj_old会在被赋值千被释放。

第一种:新建一个相同类型的对象并指向它,这样做 result 就会强引用 tempResult,当做返回数据返回之后会自动添加 autorelease 关键字,也就不会造成野指针异常。

iOS的事件分发机制是为了找到第一响应者,事件的处理机制叫做响应者链原理。 所有事件响应的类都是 UIResponder 的子类,响应者链是一个由不同对象组成的层次结构,其中的每个对象将依次获得响应事件消息的机会。

iOS面试题:说说响应链

1、当事件发生的时候,响应链首先被发送给第一个响应者(往往是事件 发生的视图,也就是用户触摸屏幕的地方)。事件将沿着响应者链一 直向下传递,直到被接受并作出处理。

2、一个UIWindow对象在某一时刻只能有一个响应者对象可以成为第一响应者。 成为第一响应者必须要canBecomeFirstResponder,才能becomeFirstResponder。

3、在UIKit中,UIApplication、UIView、UIViewController这几个类都是直接继承自UIResponder类。另外SpriteKit中的SKNode也是继承自UIResponder类。

4、寻找到最佳响应者后,事件就在响应链中的传递及响应了。

iOS面试题:讲讲iOS事件响应链的原理

点击一个UIView或产生一个触摸事件A,这个触摸事件A会被添加到由UIApplication管理的事件队列中(即,首先接收到事件的是UIApplication)。

当事件发生的时候,响应链首先被发送给第一个响应者(往往是事件发生的视图,也就是用户触摸屏幕的地方)。事件将沿着响应者链一直向下传递,知道被接受并作出处理。

UIKit发送事件到父UIView对象,然后是窗口的根视图(UIWindow)。在将事件定向到窗口之前,响应器链从根视图转移到所属的视图控制器。

标题名称:ios高级开发工程师面试题 ios开发工程师职位描述
网站URL:https://www.cdcxhl.com/article28/diishjp.html

成都网站建设公司_创新互联,为您提供自适应网站网站设计服务器托管全网营销推广品牌网站制作商城网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站网页设计