iOS基础知识iOS面试题库技术提升

iOS:技术提升

2020-12-31  本文已影响0人  春暖花已开

Foundation"源码"
bestswifter技术加强点
Autolayout
杨潇玉
GCD的工作原理
NSHispter和Objc.io有非常多优秀的文章


Objective-C

名称 简介
深入理解GCD 深入理解GCD
如何使用 Runtime 给现有的类添加 weak 属性 如何使用 Runtime 给现有的类添加 weak 属性
Objective-C Fast Enumeration 的实现原理 Objective-C Fast Enumeration 的实现原理
Why objc_msgSend Must be Written in Assembly Why objc_msgSend Must be Written in Assembly
Objective-C 消息发送与转发机制原理 Objective-C 消息发送与转发机制原理
CATEGORIES CONSIDERED HARMFUL 关于我们该如何正确使用OC中的Category。
深入理解Objective-C:Category 来自美团技术团队的优质技术文章,深入讲解了Category
深入理解Objective-C:方法缓存 来自美团技术团队的优质技术文章, 深入讲解了OC中方法调用缓存的相关知识。
Objective-C 的现代语法和新特性 Objective-C 的现代语法和新特性
Adopting Nullability Annotations OC新特性,标记对象是否可以为空,为了更好的适配Swift。
Adopting Objective-C Generics OC新特性,标记集合对象(NSArray, NSDictionary, NSSet)中保存对象类型,为了更好的适配Swift。
Objective-C vs Swift messages dispatch Objective-C和Swift的消息派发机制
高效开发iOS系列 -- 那些不为人知的KVC 文章主要讲解了KVC中容易被开发者忽视却很有用的用法。
Apple Memory Usage Performance Guidelines 是上面内存管理及优化视频中提到的苹果文档。
iOS内存管理和malloc源码解读 iOS内存管理和malloc源码解读
Automatically Formatting Your Objective-C 自动格式化代码工具ClangFormat-Xcode使用。
How to C in 2016 How to C in 2016
//TODO
Objective-C Runtime Note
position与anchorPoint

技术实践

文章名称 简介
移动端图片格式调研: ibireme 在做YYImage时的调研成果
iOS 处理图片的一些小 Tip: ibireme 在做YYImage时的调研成果
To speed up the XCode compile and link speed (200%+) 如何加快XCode编译速度?
//TODO
iOS 10 Link Preview API in WKWebView
iOS 10 UserNotifications 框架解析
SQLite3性能深入分析
揭秘:微信是如何用libco支撑8亿用户的

UI

文章名称 简介
清理ios项目不用的图片资源 清理ios项目不用的图片资源
基于 UIWebView 的富文本编辑器实践 基于 UIWebView 的富文本编辑器实践
AutoLayout--优化UITableViewCell高度计算的那些事 使用AutoLayout动态计算UITableViewCell高度
AutoLayout Tips Tip1.两个不等宽的View,彼此相邻,并“共同”居中于 Superview Tip2.让 AutoLayout 与 UIScrollView 合作无间
『零行代码』解决键盘遮挡问题(iOS) 『零行代码』解决键盘遮挡问题(iOS)
几句代码快速集成自定义转场效果+ 全手势驱动 几句代码快速集成自定义转场效果+ 全手势驱动
[译]字体渲染背后不得不说的故事 [译]字体渲染背后不得不说的故事
iOS 二维码扫描(你想要的都在这里了) iOS 二维码扫描(你想要的都在这里了)
Building a Simple Barcode Reader App in Swift Building a Simple Barcode Reader App in Swift
Quartz2D 编程指南 Quartz2D 编程指南
iOS中使用blend改变图片颜色 iOS中使用blend改变图片颜色
iOS 处理图片的一些小 Tip iOS 处理图片的一些小 Tip
移动端图片格式调研 移动端图片格式调研
iOS开发之如何跳到系统设置里的各种设置界面 iOS开发之如何跳到系统设置里的各种设置界面
防止点击 Cell 时 ViewController 被重复 Push 寻找疑难问题的解决办法,再做合理分析以便确定可使用
iOS 开发之照片框架详解 包括AssetsLibrary及新库photoKit(官方demo)
利用UIWebView打造一个炫酷的视频背景视图(OC & Swift) 视频背景View, 适合做Hi 5.0的登录窗口。
Elastic view animation using UIBezierPath Elastic view animation using UIBezierPath
Using multiple UIWindows in iOS applications Using multiple UIWindows in iOS applications
UIWindow in iOS UIWindow in iOS
React-Inspired Views User interfaces can be hard to get right in any application. Combining display and interaction in a little rectangle on the user’s screen seems simple, but even for small applications, it’s easy to end up with a tangled mess of view code. In complex products with many contributing engineers, like Facebook’s News Feed, these views can be especially hard to develop and maintain over time. Facebook News Feed视图策略

动画

文章名称 简介
How To Create an Uber Splash Screen How To Create an Uber Splash Screen
Controlling Animation Timing Controlling Animation Timing
QQ中未读气泡拖拽消失的实现分析 这位博主的其他文章也非常赞~
看,这白白的液体滴了一地 液态效果动画
利用贝塞尔曲线实现Q弹的下拉刷新 利用贝塞尔曲线实现Q弹的下拉刷新
iOS开发系列--让你的应用“动”起来 讲解IOS 动画相关博主的文笔和排版灰常赞其系列博文值得一读
iOS自定义转场动画实战讲解 iOS自定义转场动画实战讲解
CALayer Animation实践(一):让应用灵动起来! CALayer 动画实践(一)
CALayer动画实践(二):CAReplicatorLayer的用法 CALayer 动画实践(二)
iOS 视图控制器转场详解 非常详尽讲解转场。

文字排版

文章名称 简介
介绍text kit很棒的一篇文章 介绍text kit很棒的一篇文章

布局

文章名称 简介
10 Things You Need to Know About Cocoa Auto Layout 10 Things You Need to Know About Cocoa Auto Layout
iOS Auto Layout: Fun Facts and Tips iOS Auto Layout: Fun Facts and Tips

单测

文章名称 简介
Asynchronous Testing Asynchronous Testing
单元测试框架选型 介绍单元测试框架选型,对比几个知名测试框架
OCMock常见使用方式 介绍CMock常见使用方式
Singleton如何测试 介绍Singleton如何测试
单元测试编码规范 介绍单元测试编码规范
How to write a unit test which passes if a function throws? 目前Xcode Unit Test没有对抛出异常的函数进行处理的XCT方法,文中添加了第三方的写法。
如何进行 HTTP Mock HTTP Mock 在测试中非常好用,我们可以在不需要后端 API 的情况下,在本地对 HTTP 请求进行拦截,返回想要的 json 数据,而 OHHTTPStubs 就为我们提供了这样一种解决方案。
Test Doubles: Mocks, Stubs, and More
Dependency Injection
//TODO
Bad Testing Practices

Model层:

语言与基础知识:

架构:

APP相关:

UI:

场景题:


该部分转自:张之诚,在此表示衷心的感谢!希望程序员都能有一份稳定的工作🙏

基础问题
1、使用系统的某些block api(如UIView的block版本写动画时),是否也考虑引用循环问题?
2、用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?
3、UIView和 CALayer是什么关系?
4、static有什么作用
5、Category(类别)、 Extension(扩展)和继承的区别
6、为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别?
7、id和NSObject*的区别
8、如何令自己所写的对象具有拷贝功能?

设计模式
1、除了单例,观察者设计模式以外,还知道哪些设计模式?分别介绍一下
2、最喜欢哪个设计模式?为什么?
3、iOS SDK 里面有哪些设计模式的实践?
4、设计模式是为了解决什么问题的?
5、设计模式的成员构成以及工作机制是什么?
6、设计模式的优缺点是什么?

架构设计
7、MVC和MVVM的区别?MVVM和MVP的区别?
8、面向对象的几个设计原则了解么?最好可以结合场景来说。
9、可以说几个重构的技巧么?你觉得重构适合什么时候来做?
10、你觉得框架和设计模式的区别是什么?
11、看过哪些第三方框架的源码,它们是怎么设计的?设计好的地方在哪里,不好的地方在哪里,如何改进?
底层
16、main()之前的过程有哪些?
17、KVO基本原理?
18、Swift 下的如何使用 KVC?
19、:Swift有哪些模式匹配?
20、objc在向一个对象发送消息时,发生了什么?
21、静态库的原理是什么?你有没有自己写过静态编译库,遇到了哪些问题?
22、runloop是来做什么的?runloop和线程有什么关系?主线程默认开启了runloop么?子线程呢?
23、App 网络层有哪些优化策略?
24、TCP为什么要三次握手,四次挥手?
25、对称加密和非对称加密的区别?分别有哪些算法的实现?
26、HTTPS的握手流程?为什么密钥的传递需要使用非对称加密?双向认证了解么?
27、HTTPS是如何实现验证身份和验证完整性的?
28、如何用Charles抓HTTPS的包?其中原理和流程是什么?
29、什么是中间人攻击?如何避免?

网络
30、HTTP协议详解
31、谈谈你对HTTP 、TCP、 IP、socket 协议的理解

测试
32、单元测试那些事!
33、为什么使用这个单元测试呢?它给我们带来了什么好处呢?
34、单元测试的重要性:

swift
35、swift闭包
36、swift中高阶函数map用法

线程
37、 不要阻塞主线程
38、谈谈你对多线程开发的理解?ios中有几种实现多线程的方法?
39、进程和线程的区别?同步异步的区别?并行和并发的区别?
40、ViewController生命周期
41、iOS 中的多线程
42、内存管理的几条原则时什么?按照默认法则.那些关键字生成的对象
需要手动释放?在和property结合的时候怎样有效的避免内存泄露?谁申请,谁释放
43、dispatch_barrier_async的作用是什么?
44、如何用GCD同步若干个异步调用?(如根据若干个url异步加载多张图片,然后在都下载完成后合成一张整图)

http
46、http与https的区别?
47、服务器能否知道APNS推送后有没有到达客户端的方法?
app
48、1.什么方式可以看到上架App的头文件?
47、阅读过哪些框架的源码?能说说它的架构方式吗
49、iOS iAP内购审核可能失败的问题
50、IAP内购中虚拟货币导致审核无法通过的问题?

高级进阶
1.KVO实现原理?
2.说说你理解的埋点?
3.消息转发机制原理?
4.说说你理解weak属性?
5.假如Controller太臃肿,如何优化?
6.项目中网络层如何做安全处理?
7.main()之前的过程有哪些?


该部分转自 胖虎_callmeV,自我训练用。

上一篇下一篇

猜你喜欢

热点阅读