ios面试题及答案ios面试题及答案2021

ios面试题及答案ios面试题及答案2021


2024年4月20日发(作者:)

ios面试题及答案ios面试题及答案2021

ios面试题及答案ios面试题及答案 除了安卓之外,现今IOS也遍布网际互连市场。

下面是WTT为大家整 理的关于求职中iOS的相关面试试题以及面试试题的参考答案,希

望对你们有帮 助。

iOS面试试题及参考答案 1、 自动释放池是什么,如何工作的 当您向一个对象发送

一个autorelease消息时,cocoa就会将该对象的一 个引用放入到最新的自动释放池。

它仍然是个正当的对象,因此自动释放池定义 的作用域内的其他对象可以向它发送消

息。当程序执行到作用域结束的位置时, 自动释放池就会被释放,池中的所有对象也就

会被释放。

2、 线程和进程的区别和联系 进程和线程都是由操作系统所体会的程序运行的基本

单元,系统会利 用该基本单元实现系统对应用的并发性。线程和进程的主要差别在于它

们是不同 的操作系统资管理方式,进程有独立的地址空间,一个进程崩溃后,在保护模

式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有 自己的

堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于 整个进程死

掉,所有多进程的程序要比多线程的程序健壮,但在进程切换时,耗 费资较大,效率要

差一些。但对于一些要求同时进行并且又要共享某些变量的 并发操作,只能用线程,不

能用进程。

3、 属性readwrite,readonly,assign,retain,copy,nonatom各是什 么作

用,在哪种情况下用 1) Readwrite是可读可写特性,需要生成getter方法和setter方法

第 1 页 共 3 页

时 2) Readonly是只读写特性,只会生成getter方法,不会生成setter方法, 不希望属

性在类外改变 3) Assign是赋值特性,setter方法将传入参数赋值给实例变量,仅设置

变量时4) Retain表示持有特性,setter方法将传入参数先保留,再赋值,传入 参数的

retaincount会+1 5) Copy表示赋值特性,setter方法将传入对象赋值一份,需要完全

一 份新的变量时 6) Nonatom非原子操作,决定编译器生成的setter,getter是否是原

子 操作,atom表示多线程安全,一般使用nonatom 4、 object-c中创建线程的方法是

什么,如果在主线程中执行代码,方法是 什么,如果想延时执行代码,方法又是什么 线

程创建有三种方法:使用nsthread创建、使用gcd的dispatch创建、 使用子类化的

nsoperation创建,然后将其加入nsoperationqueue;在主线程执行代码, 方法是

performSelectorOnMainThread,如果想延时执行代码可以用

performSelector:onThread:withObject:waitUntilDone 5、 类别的作用,继承和类别

在实现中有何区别 Category可以在不获悉,不改变原来代码的情况下往里面添加新的方

法,只能添加,不能删除修改;并且如果类别和原来类中的方法产生冲突,类别 将覆盖原

来的方法,因此类别具有更高的优先级;将类的实现分散到多个不同文 件或多个不同框架

中,创建对私有方法的前向引用,向对象添加非正式协议。继 承可以增加,修改或者删

除方法,并且可以增加属性 6、 什么是KVC、KVO Kvc:键值编码是一种间接访问对象

的属性使用字符串来标识属性, 而不是通过调用存取方法,直接或通过实例变量访问的

机制 Kvo:键值观察机制,他提供了观察某一属性变化的方法,极大的简 化了代码 7、

在iphone应用中如何保存数据 1) 通过web服务,保存在服务器上 2) 通过nscoder固

化机制,将对象保存在文件中3) 通过sqlite或者coredata保存在文件数据库中 8、 在

项目中什么时候选择使用gcd,什么时候选择nsoperation 项目中使用nsoperation的

优点是对线程的高度抽象,在项目中使用它, 会使项目的程序结构更好,子类化

nsoperation的设计思路,是具有面向对象的优 点,使得实现是多线程支持,而接口简

第 2 页 共 3 页

单,建议在复杂的项目中使用;而gcd的优 点是它本身简单,易用,对于不复杂的多线程

操作,会节省代码量,而block参 数的使用,会使代码更为易懂,建议在简单项目中使

用 9、 iOS性能优化(初级) 1) 用ARC管理内存 2) 在正确的地方使用reuseidentifier 3)

尽可能使view透明 4) 避免庞大的ib 5) 不要block主线程 6) 在imageviews中调整图

片大小 7) 选择正确的collection 8) 打开zip压缩 10、 简单描述下客户端的缓存机制 1)

缓存可以分为:内存数据缓存、数据库缓存、文件缓存 2) 每次想要获取数据的时侯 1 先

检查内存中有无缓存 2 在检查本地有无缓存 3 最终发送网络请求4 讲服务器返回的网络

数据进行缓存(内存、数据库、文件),以便下 次读取 11、 iOS控制器view的生命周期

1 init函数——初始化 2 awakefromnib——在loadview之前的工作放在这里 3

viewdidload——一个viewcontroller一个生命周期内这个函数只会调 用一次 4

viewwillear——view将要出现,每次view消失再出现都会调用 5

viewwilllayoutsubviews——简要对子视图进行布局 6 Viewdidlayoutsubviews——完

成对子视图进行布局 7 viewdidear——视图将 要出现在屏幕上 8 viewwilldisear——

view将要消失 9 viewdiddisear——view已经消失

1.软件测试常见面试题及答案 2.管理人员面试题及答案 3.关于事业单位常见的面试题

及答案 4.面试问题及答案 面试技巧

第 3 页 共 3 页


发布者:admin,转转请注明出处:http://www.yc00.com/web/1713585963a2278362.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信