课程从基础的C开始,循循渐进的讲解两大核心功能与常用API,并在实战中应用Runtime核心重难点,提升攻城狮的开发技能,开发出高性能的APP。最后讲解了iOS面试中必考的10道面试题,助同学们在求职中获得自己满意的offer。
面试必问知识点
解决复杂业务
基础知识
进阶应用
原理实战
面试讲解
程序加载过程
Category原理
KVO原理
JSPatch
MJExtension
JSONModel
指针介绍
结构体介绍
位运算
宏定义
Runtime介绍
OC中的类结构
Tagged Pointer 介绍
isa_t介绍
NSObject常用方法解析
类方法和实例方法之间的区别
objc_msgSend介绍
消息发送流程
直接跳过消息发送流程
消息转发流程
动态消息解析
重定向
转发
模拟多继承
类objc_getClass
类的名称class_getName
变量列表class_copyIvarList
属性列表class_copyPropertyList
方法列表class_copyMethodList
协议列表class_copyProtocolList
动态添加变量class_addIvar
动态添加方法class_addMethod
动态交换方法method_exchangeImplementations
1. Method Swizzling
通过分析Method Swizzling原理,然后封装自己的API,最后利用封装好的API处理数组越界。
2. 字典和模型的自动转换
如何把字典转换成对应的模型,针对常遇到的属性是另外一个对象或者数组的问题提出解决方案,封装一个字典自动转模型的高效API。
3. 自动归档和自动解档
如何利用Runtime API高效快速的自动对象归档和对象解档,并且利用前面所学的宏定义知识宏定义归档和解档代码。
4. 万能跳转界面方法
根据信息跳转到指定界面。信息可以是推送返回的,也可以是banner页返回的。指定的界面既有StoryBoard中已存在的,也有纯粹的Class文件,甚至不存在的界面也可以动态的创建出来。
类的初始化方法alloc+init与new区别?
Runtime如何通过Selector找到对应的IMP地址?
能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?
给类添加一个属性后,在类结构体里哪些元素会发生变化?
_objc_msgForward函数是做什么的?直接调用它 将会发生什么?
使用runtime Associate方法关联的对象,需要在 主对象dealloc的时候释放么?
_runtime如何实现weak属性?那么runtime如何 实现weak变量的自动置nil?
代码阅读1:[self class]和[super class]的区别
代码阅读2:isKindOfClass和isMemberOfClass 的区别
代码阅读3:方法调用
关于课程的问题都可在问答区随时提问,讲师会进行集中答疑
课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化
1.想提高面试成功率的小伙伴
2.想加深对OC语言理解的小伙伴
3.想提高iOS开发性能的小伙伴
一年左右的OC开发经验、
熟悉最基本的C语言基础知识
饭饭饭大饱
好评
讲得很好,深度深,收益良多,这里给同学提两个建议,关于实现 KVO 课程里没有考虑特别周全, "daughter.name" 这种点语法的情况,以及对基础类型的监听,我自己写了个比较全面的实现,要考虑的细节还是非常多的,还有一个建议是字典转模型要考虑容器类型内部元素的自动转换,比如 NSArray<Person *> *, 情况还是比较复杂的,推荐大家自己亲自实现 KVO 和 字典转模型,才深有体会。
卡卡罗特丶丶
好评
看了一些章节,目前老师讲的是一些原理层面和demo演示。期待后期章节runtime实战的运用能更精彩,最好还有一些其它的普及和联系比如runloop和多线程等。总体还是受益匪浅的,支持一下,毕竟网上这方面的教学很少,感谢老师的付出!有其他方面的领域也会支持的。要再多一点经验分享就更好了。
慕娘4929733
好评
讲的东西很实用,很好,这个东西在平时开发中很少能接触到的,对于一个程序员的成长有很大的好处,推荐学习一下,希望后期能够推出RunLoop详细讲解视频。
如无法下载使用图片另存为
下载海报选课、学习遇到问题?
扫码添加指导老师 1V1 帮助你!
添加后老师会第一时间解决你的问题