注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书经济管理自我实现/励志人在职场iOS面试之道

iOS面试之道

iOS面试之道

定 价:¥59.00

作 者: 故胤道长
出版社: 电子工业出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787121342622 出版时间: 2018-07-01 包装:
开本: 16开 页数: 220 字数:  

内容简介

  《iOS面试之道》是作者将多年的工作经验和积累,结合具体面试内容总结而成的。《iOS面试之道》共分为3部分。第1部分为面试准备,详细介绍求职中遇到的基本问题,作者根据其多年的经验,在面试流程、简历投递、复习准备方面给出了完善的参考意见和建议。第2部分为算法知识。算法几乎是各种水平的程序员都要面对的考查内容。该部分采用Swift语言重新审视了多种数据结构和算法原理,可以说是为iOS开发者量身打造的算法解答。第3部分为iOS专业问答,分为语言工具、系统框架和经验之谈,采用问答的形式来详细介绍。如果你是一名iOS开发者,并且正准备跳槽,那么本书是一本不错的复习参考书;如果你没有面试计划,那么本书也可以帮助你对iOS知识进行提纲挈领的整理;如果你是面试官,那么希望本书能为你提供考查应聘者的依据和源泉;对于具有其他背景的软件工程师,若想一窥iOS世界的知识框架,本书也是不错的切入点。

作者简介

  顾毅,曾在硅谷视频公司 Ooyala,移动视频部门,Uber 旧金山总部核心架构部门工作,现在***Kindle部门,任技术领导人。唐巧,小猿搜题负责人,资深iOS开发者。

图书目录

第1章 iOS工程师的面试 / 1
1.1 简历的准备 / 1
1.2 寻找机会 / 8
1.3 面试流程 / 9
1.4 代码和系统设计的准备 / 16
1.5 如何提问 / 22
1.6 Offer的比较和选择 / 24
第2章 算法基础 / 28
2.1 基本的数据结构 / 28
数组 / 28
字典和集合 / 30
字符串 / 32
2.2 链表 / 34
链表的基本概念 / 34
Dummy节点和尾插法 / 35
快行指针 / 38
2.3 栈和队列 / 40
栈和队列的基本概念 / 40
栈和队列互相转换 / 43
栈和队列面试实战题 / 45

2.4 二叉树 / 47
二叉树的基本概念 / 48
二叉树的遍历 / 50
二叉树面试实战题 / 51
2.5 排序和搜索 / 54
排序的基本概念 / 54
搜索的基本概念 / 57
排序面试实战题 / 59
搜索面试实战题 / 61
iOS中搜索与排序的配合使用 / 64
2.6 深度优先搜索和广度优先搜索 / 66
深度优先搜索和广度优先搜索的基本概念 / 66
深度优先搜索和广度优先搜索面试实战题 / 69
2.7 动态规划 / 74
斐波拉契数列问题 / 74
斐波拉契数列问题面试实战题 / 77
第3章 语言工具 / 81
3.1 Swift / 81
Swift面试理论题 / 81
Swift面试实战题 / 88
3.2 Objective-C / 91
Objective-C面试理论题 / 91
Objective-C面试实战题 / 96
3.3 Swift VS Objective-C / 101
数据结构 / 101
编程思路 / 104
语言特性 / 105
3.4 Xcode使用 / 112
Xcode调试 / 112
分析与优化 / 114
Playground技巧 / 117

第4章 系统框架 / 119
4.1 UI相关知识 / 119
UIKit / 119
UI控件和基本布局 / 119
动画 / 124
多任务开发 / 127
4.2 UIScrollView及其子类 / 131
UIScrollView及其子类理论面试题 / 131
拓展知识 / 134
优化进阶 / 138
4.3 网络、推送与数据处理 / 141
网络、推送与数据处理相关理论 / 142
iOS网络请求 / 144
信息推送 / 148
数据处理 / 150
4.4 并发编程 / 152
4.5 设计模式 / 168
第5章 经验之谈 / 175
5.1 架构的选择 / 175
5.2 面向协议的编程 / 184
POP VS OOP / 184
POP面试实战题 / 189
5.3 App的测试和上架 / 195
测试相关知识 / 195
App Store相关知识 / 201
结束语 / 204

题目目录




给出一个字符串,要求将其按照单词顺序进行反转\t33
类(class)和结构体(struct)有什么区别\t81
Swift是面向对象还是函数式的编程语言\t83
在Swift中,什么是可选型(Optional)\t84
在Swift中,什么是泛型(Generics)\t84
说明并比较关键词:Open,Public,Internal,File-private和Private\t85
说明并比较关键词:Strong,Weak和Unowned\t86
在Swift中,如何理解copy-on-write\t87
什么是属性观察(Property Observer)\t87
在结构体中如何修改成员变量的方法\t88
如何用Swift实现或(II)操作\t89
实现一个函数:输入是任意一个整数,输出为输入的整数+2\t89
实现一个函数:求0~100(包括0和100)中为偶数并且恰好是其他数字平方的
数字\t90
什么是ARC\t91
什么情况下会出现循环引用\t92
说明并比较关键词:strong,weak,assign和copy\t93
说明并比较关键词:atomatic和nonatomic\t94
atomic是百分之百线程安全的吗\t94
说明并比较关键词:_ _weak和_ _block\t95
什么是block?它和代理的区别是什么\t95
属性声明代码风格考查\t96
架构解耦代码考查\t97
内存管理语法考查\t98
多线程语法考查\t99
以scheduledTimerWithTimeInterval的方式触发的timer,在滑动页面上的列表时,
timer会暂停,为什么?该如何解决\t100
Swift为什么将String,Array和Dictionary设计成值类型\t101
如何用Swift将协议(protocol)中的部分方法设计成可选(optional)\t102
协议的代码实战\t103
在Swift和Objective-C的混合编程项目中,如何在Swift文件中调用
Objective-C文件中定义的方法?如何在Objective-C文件中调用Swift
文件中定义的方法\t104
比较Swift和Objective-C中的初始化方法(init)有什么异同\t105
比较Swift和Objective-C中的协议(protocol)有什么异同\t105
谈谈对Objective-C和Swift动态特性的理解\t105
语言特性的代码实战\t107
message send如果找不到对象,则会如何进行后续处理\t108
什么是method swizzling\t108
Swift和Objective-C的自省(Introspection)有什么不同\t109
能否通过Category给已有的类添加属性(property)\t110
LLDB中p和po有什么区别\t112
Xcode中的Buildtime issues和Runtime issues指什么\t113
App启动时间过长,该怎样优化\t114
如何用Xcode检测代码中的循环引用\t115
怎样解决EXC_BAD_ACCESS\t116
如何在Playground中执行异步操作\t117
在playground中实现一个10行的列表,每行随机显示一个0~100的整数\t118
要在UIView上定义一个Label有哪几种方式\t119
storyboard/xib和纯代码构建UI相比,有哪些优点和缺点\t120
Auto Layout和Frame在UI布局和渲染上有什么区别\t121
UIView和CALayer有什么区别\t121
说明并比较关键词:frame,bounds和center\t122
说明并比较方法:layoutIfNeeded,layoutSubviews和setNeedsLayout\t123
说明并比较关键词:Safe Area,SafeAreaLayoutGuide和SafeAreaInsets\t123
在iOS中实现动画的方式有几种\t124
控制屏幕上的圆形小球,使其水平向右滑动200个point\t125
在iOS开发中,如何保证App的UI在iPhone、iPad及iPad分屏情况下
依然适用\t127
如何用drag & drop实现图片拖动功能\t129
说明并比较关键词:contentView,contentInset,contentSize和contentOffset\t131
说明UITableViewCell的重用机制\t133
说明并比较协议:UITableViewDataSource和UITableViewDelegate\t133
请说明并比较协议:UICollectionViewDataSource,UICollection- ViewDelegate
和UICollectionViewDelegateFlowLayout\t133
实现一个10行的列表,每行随机显示一个0~100的整数。用户可以删除、
移动任何一行,下拉列表中的数字重新刷新\t134
UICollectionView中的Supplementary Views和Decoration Views分别指什么\t137
如果一个列表视图滑动很慢,那么该怎样优化\t138
说一说实现预加载的方法\t139
如何用UICollectionView实现瀑布流界面\t140
说一说HTTP中GET与POST的区别\t142
说一说Session和Cookie的概念\t142
说明并比较网络通信协议:Ajax Polling,Long Polling,WebSockets和
Sever-Sent Event\t143
在一个HTTPS连接的网站中,输入账号和密码并单击登录按钮后,
到服务器返回这个请求前,这期间经历了什么\t143
说明并比较类:URLSessionTask,URLSessionDataTask,
URLSessionUploadTask和URLSessionDownloadTask\t144
什么是Completion Handler\t145
设计一个方法,在给定API的网址的条件下,返回用户数据\t146
在iOS开发中,本地消息通知的流程是怎样的\t148
说一说在iOS开发中,远程消息推送的原理\t149
在iOS开发中,如何实现编码和解码\t150
说一说在iOS开发中数据持久化的方案\t151
在iOS开发中,对于并发操作有哪3种方式\t153
比较关键词:Serial,Concurrent,Sync和Async\t153
串行队列的代码实战\t154
并行队列的代码实战\t156
举例说明iOS并发编程中的三大问题\t157
竞态条件的代码实战\t160
试比较GCD中的方法:dispatch_async,dispatch_after,dispatch_ once
和dispatch_group\t162
GCD中全局(global)队列有哪几种优先级\t164
试比较Operations中的关键词:Operation,BlockOperation和OperationQueue\t164
如何在OperationQueue中取消某个Operation\t166
在实际开发中,主线程和其他线程有哪些使用场景\t168
说说你平常开发中用到的设计模式\t169
什么是MVC\t170
Objective-C和Swift在单例模式的创建上有什么区别\t171
什么是装饰模式(Decorator)\t171
什么是观察者模式(Observer)\t172
什么是备忘录模式(Memento)\t174
比较苹果官方的MVC架构的优点和缺点\t176
MVC架构的代码实战\t177
MVCS中的S为什么要单独拆分出来\t179
MVP和MVC有什么异同\t179
MVVM中的ViewModel的作用是什么\t180
比较MVC、MVP和MVVM这三种架构\t181
VIPER之间的各个组件是如何交互的\t182
什么是OOP?它在iOS开发中有哪些优点\t184
OOP在iOS开发中有哪些缺点\t185
POP相比OOP有哪些优势\t187
要给一个UIButton增加一个点击后抖动的效果,该怎样实现\t189
POP的代码实战\t190
试用Swift实现二分搜索算法\t192
一个App崩溃了,可能是什么原因造成的\t195
在模拟机上完成所有测试之后,就不需要在真机上再进行测试了吗\t196
为什么在单元测试中引入代码模块要用@testable关键词\t197
单元测试的代码实战\t197
说一说iOS中的性能测试(performance test)\t199
说一说iOS开发中的UI测试\t200
如何检查测试覆盖率\t200
什么是iOS中的App ID\t201
什么是iOS中的Code Signing\t202
什么是iOS中的App Thinning\t202
向App Store提交App时有哪些原因可能被拒\t203

本目录推荐