iOS面试专题iOS面试常见问题

iOS知识点总结

2021-04-28  本文已影响0人  十六月

*多线程有哪几种,常见的应用场景

Pthreads、NSTread、GCD、NSOperation

* SDWebImage的原理和实现机制

* 触摸事件的传递和响应者链机制

1、触摸事件的传递
2、响应者链
3、事件处理的整个流程总结:

1)触摸屏幕产生触摸事件后,触摸事件会被添加到由UIApplication管理的事件队列中(即,首先接收到事·件的是UIApplication)。
 2)UIApplication会从事件队列中取出最前面的事件,把事件传递给应用程序的主窗口(keyWindow)。
 3) 主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件。(至此,第一步已完成)
 4)最合适的view会调用自己的touches方法处理事件
 5)touches默认做法是把事件顺着响应者链条向上抛。

* ARC原理以及和MRC区别及autoreleasePool的原理

* UITableView的卡顿优化

* block、代理、通知的区别,block的用法需要注意些什么

@property有哪些属性,它们的区别和作用

* 浅拷贝和深拷贝

* static关键字的作用

* 线程和进程的区别和联系

* 堆和栈的区别

* objc的内存管理

*动态绑定

* ViewController的生命周期

-init-loadView-viewDidload-viewWillAppear-viewWillLayoutSubviews-viewDidLayoutSubviews-viewDidAppear-viewWillDisappear-viewDidDisappear-viewWillUnload-viewDidUnload-dealloc

* OC和Swift的区别和联系,各自的优缺点

* 数据持久化方式

文件写入、数据库、Core Data、对象归档

* 循环引用出现的场景

计时器、block、delegate

* 运行时机制的原理和应用场景

*类别中动态添加属性
*获取对象的成员列表,通过kvc将数据转模型
*交换方法:在AFNetworking中,替换了NSURLSession resume,每次发送网络请求的时候,都会发送通知,截取信息。

* React Native

* Http常见状态码

*友盟报错可以查看到某一行的错误,原理是什么

dSYM UUID,这个是dSYM文件的唯一标识。dSYM 是保存 16 进制函数地址映射信息的中转文件,我们调试的 symbols 都会包含在这个文件中,并且每次编译项目的时候都会生成一个新的 dSYM 文件。根据内存地址找到对应的代码

*git和svn的简单用法以及简单的几个命令

*TCP和UDP区别和联系

*Socket建立网络连接的步骤

socket(套接字)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。

*数据库,数据迁移

realm,只要表的结构有变化,把当前的数据库版本加1,realm会根据schemaVersion自动迁移数据

*局部变量、实例变量的释放时机

  1. 局部变量出了方法就会被释放
  2. 实例变量取决于指向它的指针,如果没有强引用指针指向它,页面被销毁后指针被销毁,对象随之释放

*推送的原理

  1. 客户端把udid和bundleid发送给苹果的apns服务器,服务器生成一个deviceToken返回给客户端,客户端把deviceToken传给我们的后台服务端,服务端把deviceToken存储到数据库里,一旦有新的信息需要推送,后台服务端就会去数据库查询该deviceToken的信息,通知apns服务器给该deviceToken发送什么样的信息,apns服务器根据deviceToken找到这台设备并推送通知

*setNeedsLayout和layoutIfNeeded

setNeedsLayout:标记为需要重新布局,异步调用layoutIfNeeded,在下一轮runloop结束前刷新所有的布局和UI上的更新。
layoutIfNeeded:如果有标记,立即调用layoutSubviews进行布局,如果没有则不会调用layoutSubviews

上一篇下一篇

猜你喜欢

热点阅读