iOS开发快速进阶与实战epub

图书网 2021年8月2日17:56:12
评论
1.6K

iOS开发快速进阶与实战 作者:黄新宇

iOS开发快速进阶与实战 出版社:清华大学出版社

iOS开发快速进阶与实战 内容简介

《iOS开发快速进阶与实战》偏向于iOS应用的实际开发,介绍了iOS开发过程中的技术实现方案和原理,包含基本知识、底层常用技术原理、开发技巧,以及技能扩展等书各方面,其中大部分章节以实际项目开发中常见的问题为背景,内容阐述方式包括介绍原理、对比技术方案、实际应用、引导读者思维等,并在每一章最后部分归纳总结本章的重点内容。 本书既可以作为高等学校计算机软件技术课程的教材,也可以作为企业iOS开发人员的技术参考书。

iOS开发快速进阶与实战 目录

第1章iOS的类

1.1创建并描述一个类

1.2类方法的self

1.3类属性

1.4黑魔法

第2章底层实现分析

2.1内存分区

2.2初始化

2.3拷贝

2.4数组与集合

2.5字典与哈希表

2.6KVC

2.6.1对象关系映射

2.6.2对私有属性访问

2.6.3控制是否触发setter、getter方法

2.6.4KVC进阶用法

第3章开发原理相关

3.1定时器的引用

3.2动画事务

3.3响应链

3.4UITableViewCell高度

3.5图片初始化

3.6静态库与动态库

3.7离屏渲染

3.8约束动画

第4章线程安全——锁

4.1NSLock

4.2synchronized

4.3pthread

4.3.1互斥锁(普通锁)

4.3.2递归锁

4.3.3pthread信号量

4.3.4读写锁

4.4信号量

4.5NSConditionLock与NSCondition

4.5.1NSConditionLock

4.5.2NSCondition

4.6自旋锁

4.7递归锁

小结

第5章排序算法

5.1冒泡排序

5.2选择排序

5.3插入排序

5.4快速排序

5.5希尔排序

5.6归并排序

5.7堆排序

5.8基数排序

小结

第6章技能进阶与思考

6.1按钮的图文位置

6.2创建Pod库

6.3子控制器

6.4APP状态恢复

6.5APP编译过程

6.6APP启动

6.7多线程

6.7.1GCD

6.7.2NSOperation

6.8继承与多态

6.9缓存

6.10字数限制

参考文献

iOS开发快速进阶与实战 精彩文摘

排序算法是算法中一个比较常见的知识点,主要功能是对一个乱序数组进行排序,为了达到更少的计算量,对一些排序方法进行了命名,其中比较出名的8大排序算法是: 冒泡排序,选择排序,希尔排序,快速排序,归并排序,堆排序,基数排序。

如果不涉及架构方面,以及多重计算优化的话,算法其实并不常用,当然在很多比较大的公司的面试题中,算法是一个比较重要的考察方面,并且考察的算法主要就是排序算法和二叉树。而在面试排序算法中,主要考察的排序并不是全部的8大算法,主要分为三个层次: ①手写冒泡排序; ②了解冒泡、选择、快速排序,并以伪代码形式写出; ③除了前面两个层次,需要对剩下的排序算法有了解,并可以简单说出原理。这是面试题中关于考算法的三个等级,一般的公司不强求算法的话都只要求掌握第一个就行了,而大一些的公司,例如BAT,需要掌握到第二个层次,而第三个层次基本上没有公司会考到,当然不排除有些主攻算法的面试官会问到,所以这里对所有的排序算法进行分析讲解,希望读者们在以后的面试算法中能够轻松应付。

由于ObjectiveC的数组和字典不能存储值类型、结构体,也就是包括int、NSInteger、BOOL、CGRect类型都不能直接存储,需要转换成NSNumber或者NSValue来存储。所以为了展示排序算法,我们采用Swift语言来实现,首先Swift相比于ObjectiveC来说不区分可变和不可变数组,另外,Swift的数组和字典属于值类型,并且可以存储基本数据类型,甚至是nil也可以。……。事实上,我们可以将partition放在快速排序的函数体内,成为其私有的函数,从而体现完整性,不过这里暂且只讨论算法,所以不做考虑。

可以从代码中看出,partition函数是将数组的某一区域进行一个简单的排序划分,获取到划分的位置,根据其位置再将数组划分为两个区域,然后分别递归调用快速排序函数。

接下来根据数组以及代码详细分析一下排序过程。

我们传递的数组是[2, 1, 5, 9, 4, 0, 6, 3, 8, 7],并且传递了数组的一个区域,表示在该区域里执行。……进入quickSort函数,由于数组个数至少是大于1的(个数为0或者为1没有必要排序),所以执行partition函数,partition函数是快速排序的要点所在,接下来,我们调用partition函数传递的参数,仍然是该数组以及其整个范围。鉴于Swift的参数默认为let不可修改,所以可以使用同arr参数类似的inout修饰,但这将使整个函数显得过于冗杂,因此在partition内创建同名的局部变量left、right,并且记录区域的第一个值pivot为arr[left],我们称其为比较数,然后便开始while循环了。

图书网:iOS开发快速进阶与实战epub

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

证券/股票

破解牛股密码pdf

破解牛股密码 作者:任平安 破解牛股密码 出版社:清华大学出版社 破解牛股密码 内容简介 本书通过对市场中个股的描述,总结出牛股上涨的内在因素和外在图形特征,通过对牛股内外在特征的详细讲解,帮助投资者...
程序设计

C++捷径教程 第3版pdf

C++捷径教程 第3版 作者:(美) Herbert Schildt C++捷径教程 第3版 出版社:清华大学出版社 C++捷径教程 第3版 内容简介 本书是程序设计大师Herbert Schildt...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: