本文介绍: iOS面试题 一共分为笔试题和面试题两部分笔试题 一共分为10个 总共613题面试题 一共400题笔试题 一个10个系列 分别为①(语法篇) 共147题 已更新②(常识篇) 共72题 已更新③(界面篇) 共83题 已更新④(iOS篇) 共52题 已更新⑤(操作篇) 共68题 已更新⑥(数据结构篇) 共23题 已更新⑦(多线程篇) 共60题 已更新⑧(网络篇) 共22题 已更新⑨(多媒体篇) 共59题 已更新⑩(安全篇) 共27题 已更新面试题 一共分为3个 总共400题⑪.
面试题 400题
⭐️⑪、面试题-第③篇 3/3篇(136题)
1.@protocol
和Category
中如何使用@property
?
2.weak
属性需要在dealloc
中置nil
么?
3.ARC
下,不显式指定任何属性
关键字
时,默认的关键字
都有哪些?
4.用@property
声明的NSString
(或NSArray
,NSDictionary
)经常使用关键字
copy
,为什么?如果改用strong
关键字,可能造成什么问题
?
5.objc
中向一个nil
对象发送消息
将会发生什么
?
6.objc
中向一个对象发送消息[obj foo]
和objc_msgSend()函数
之间有什么关系
?
7.什么时候会报unrecognized selector
的异常
?
8.一个objc
对象如何进行内存布局
?(考虑有父类的情况)
9.使用runtime
Associate
方法关联的对象,需要在主对象dealloc
的时候释放么?
10.objc
中的类方法
和实例方法
有什么本质
区别
和联系
?
11._objc_msgForward
函数是做什么的,直接调用它将会发生什么?
12.runtime
如何实现wea
k变量的自动置nil
?
13.能否向编译后
得到的类
找那个增加
实例变量
?能否向运行时
创建的类
中添加实例变量
?为什么?
14.RunLoop
和线程
有什么关系
?
15.runloop的mode
作用
是什么?
16.objc
使用什么机制
管理对象内存
?
17.ARC
通过什么方式
帮助开发者管理内存
?
18.不手动指定autoreleasepool
的前提下,一个autorelease
对象在什么时候释放?(比如在一个vc的viewDidload
中创建)
19.BAD_ACCESS
在什么情况
下出现
?
20.苹果是如何实现autoreleasepool
的?
21.使用block
时什么情况会发生
引用循环
,如何解决?
22.在block
内部如何修改block
外部变量?
23.使用系统的某些block
api
(如UIView的block版本写动画时)们是否也考虑引用循环
问题?
24.GCD
的队列(dispatch_queue_t
)分那两种类型
?
25.如何用GCD
同步若干个异步调用
(如果根据若干个url异步加载多张图片,然后在都下载完成合成一张整图)?
26.dispatch_barrier_async
的作用是什么?
27.若一个类有实例变量 NSString *_foo
调用SetValue:forKey:
时,可以以foo
还是_foo
作为key
?
28.KVC
和KVO
的KeyPath
一定是属性
么?
29.IBOutlet
连出来的视图属性为什么可以被设置weak
?
30.IB中User Defined Runtime Attributes
是如何使用?
31.lldb(gdb)
有哪些常用的调试
命令?
32.使用工厂模式
最主要的好处
是什么?
33.UIScrollView
用到了什么设计模式
?
34.描述一种在Swift
中出现循环引用
的情况,并说明怎么解决。
35.闭包
是引用类型
吗?
36.泛型类
,泛型结构体
,泛型协议
的功能特性都包含在Swift中吗?
37.对于一个optional
变量拆包
有多少种方法?并在安全方面进行评价。
38.哪些情况下你不得不
使用隐式拆包
。说明原因。
39.什么是泛型
。泛型
是用来解决什么问题
的?
40.在Swift
中,什么时候用结构体
,什么时候用类
?
41.什么是optional
类型,它是用来解决什么问题
的?
42.简要描述观察者模式
?
43.分辨率
的计算单位
是什么?
44.设备状态栏
(Device Status Bar
)是什么?高度
如何?是否透明
?在手机通话或者导航状态下,它如何显示
的?
45.选项卡(Tab Bar)
和工具栏(Toolbar)
分别是什么?两者之间有何共同点
和不同点
46.表视图(Table VIew
)是什么?集合视图(Collection View
)又是什么?
47.选取器视图(Picker View
适合存放哪类内容?What sort of content wouldbe appropriate to place in a picker view?
48.应该在什么情况下使用标签
,文本域
和文本视图
?When are a label,textfield and textView appropriate?
49.什么是分段控件
?What does a segmented control do?
50.什么是模态视图
?What is a modal View?
51.iOS应用图标
是指什么?请尽可能详细地描述一下。
52.请解释以下启动画面
(Launch Images)
53.自动布局
(Auto Layou
t)的作用是什么?请概括以下它是怎么运行的。
54.为什么map
函数
必不可少?该在什么情况下使用
它?
55.请解释一下UserDefaults
。就你而言,你会如何在磁盘中
对数组对象
进行序列化
?
56.Application
扮演着什么样的角色
?
57.Metal
是什么?
58.请描述SpriteKit
和SceneKit
的作用。
59.请概括描述一下core Audio
是什么框架
?
60.请概括描述一下Core Data
是什么框架
?
61.请概括描述一下Core Location
是什么框架
?
62.iBeacons
是什么?
63.Game Center
针对iOS
游戏有哪些功能
?
64.HealthKit
是什么?
65.描述一下你的iOS
应用开发流程
?
66.iOS是如何提供安全性
,保护用户隐私
信息的?
67.performSelect:withObject:afterDelay:
内部大概是怎么实现的,有什么注意事项么?
68.为什么当 Core Animation
完成时,layer
又恢复到原先的状态?
69.当tableview
的cell
改变时,如何让这些改变以动画的形式
呈现?
70.Push Notification
是如何工作
的?
71.在Objective-C
中,如何为Class
定义一个对外只读
内可读可写
的属性
?
72.哪些途径可以让ViewController
瘦下来
?
73.有哪些常见的Crash
的场景?
74.autorelease
对象在什么情况下会被释放
?
75.当系统出现内存警告
时会发生什么?
76.Toll-Free Bridging
是什么?什么情况下会使用
?
77.为什么NotificationCenter
需要removeObserver
如何实现自动remove?
78.block
实现原理
?
79.__block
在arc
和非arc
下含义一样吗?
80.使用nonatomic
一定是线程安全
的吗?
81.UIScrollView
大概是如何实现
的,它是如何捕捉
,响应手势
?
82.Objective-C
中,meta-class
指的是什么?
83.iOS
的签名机制
大概是怎样的?
84.谈谈控制器View
的加载过程
?
85.设计一套大文件(如上百M的视频)下载方案?
86.什么是谓词
?
87.用过Core Data
或者SQLite
吗?读写是分线程
的吗?遇到过死锁
没?如何解决的?
88.什么是NSManagedObject
模型?
89.MD5
和Base64
的区别是什么,各自场景是什么?
90.SDWebImage
原理
91.单例模式
的作用
92.程序
中有哪些常见的单例
?
93.请问VIewController
的loadView
、ViewDidLoad
、viewDidUnload
分别是在什么时候调用的?
94.Quatrz 2D
的绘图
功能的三个核心
概念是什么并简述其作用?
95.自定义实现UITabbarController
的原理?
96.请谈谈你对沙盒
的理解?
97.LayoutSubViews
在什么时候被调用
?
98.二叉搜索树
的概念,时间复杂度
是多少?
99.如何制作一个静态库
/动态库
,它们的区别是什么?
100.isMemberOfClass
和 isKindOfClass
联系
与区别
是什么?
101.用你熟悉的语言,编程实现Fiboacci
数列:intF(intn):
102.给定两个排好序的数组A,B,请写一个函数,从中找到它们的公共元素:findCommon(A,B),并列举其他可能的查找方法,越多越好
103.KVO
的实现原理
104.如何给一个对象的私有属性
赋值
?
105.block
的本质
是什么?为啥在block
里面改外面的变量的值,要给外面的变量加__block修饰
,加__block
修饰
的原理
是什么?
106.NSURLSession
在什么情况下会存在循环引用
的问题,怎么解决
?
107.如何自己实现GET缓存?
108.在使用SQLite
过程中,如果多条线程
同时操作
同一数据库
会造成什么问题,怎么解决?
109.在GCD
中线程之间
怎么通讯
?请举例说明。
110.NSThread
的线程
之间如何通信
?请举例说明
111.网络图片
处理问题中怎么解决一个相同的网络地址重复
请求的问题。
112.自动释放池底层
怎么实现
?
113.不用中间变量
,用两种方法交换A和B的值
?
114.用预处理指令#define
声明一个常数,用以表明一年中有多少秒?(忽略闰年问题)
115.如何生成同时支持多个架构
(simulator
,arm7
,arm64
)的通用静态库?
116.@class
用途
117.请用Objective-C代码如何判断某个对象obj是否支持某个method
。
118.3升
的杯子一个,5升
的杯子一个,杯子的形状不规则。问怎么才能得到4升
的水。水无限多。
119.如何处理多个网络请求
并发
的情况?
120.简单介绍一下KVC
和KVO
,它们都可以应用
哪些场景
?
121.什么是Plist
文件?
122.What is Core Foundation framework,and what is Foundation framework?什么是Core Foundation
框架
,什么是Foundation
框架
?
123.Swift的内存管理
是怎样的?
124.Swift支持面向过程编程
吗?
125.举例说明Swift里面有哪些是Objective-C
中没有的?
126.Swift
是一门安全
语言吗?
127.Swift中如何定义变量
和常量
?
128.用Swift定义
一个数组
和字典
?
129.为什么要在变量类型
后面加个问号
?
130.给一个数组,要求写一个函数,交换数组
中的两个元素
?
131.Swift
中定义变量
和Objective-C
中定义常量
有什么区别?
132.Swift
到底是面向对象
还是函数式
的编程语言?
133.可以使用扩展
添加存储属性
吗?
134.闭包
是值类型
还是引用类型
?
135.Optional
(可选型)是怎么实现
的?
136.谈谈你对[1,2,3].map($0 * 2)代码的理解
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。