# iOS开发基石:深入掌握Objective-C的必修课
在移动开发领域,iOS生态始终占据着举足轻重的地位。尽管Swift已逐渐成为苹果官方推荐的主流语言,但对于希望深入理解iOS底层机制、维护经典存量项目或夯实面向对象编程基础的开发者而言,Objective-C依然是一座不可绕过的山峰。本课程《使用Objective-C进行iOS移动开发》正是为这类学习者量身打造的入门指南,旨在通过系统化的讲解,帮助学员从零开始构建坚实的OC语法体系。
课程定位与价值
本课程归属于“体系课”分类,这意味着它并非零散的知识点拼凑,而是一套逻辑严密、循序渐进的学习路径。对于初学者来说,直接切入复杂的Swift语法或庞大的iOS框架往往容易迷失方向。Objective-C作为一门更贴近底层内存管理、语法结构更为显式的语言,能够帮助开发者更清晰地理解“对象”、“消息”与“运行时”这些核心概念。掌握它,不仅意味着多了一项就业技能,更意味着对程序执行原理有了更深层次的洞察。
内容亮点解析
课程开篇并未急于进入晦涩的理论,而是采用“实战先行”的教学策略。在《使用模板创建一个空白的Command Line Tool》这一节中,讲师引导学员亲手搭建开发环境,运行第一个OC程序。这种“做中学”的方式能迅速消除新手对陌生环境的恐惧感。随后,《解析第一个Objective-C程序的结构》与《Objective-C语言的简介》两节课,层层递进地拆解代码构成,让学员明白每一行代码背后的意义,而非机械记忆。
在核心语法部分,课程覆盖了从类的基础创建到数据类型的完整闭环。《创建和使用一个最简单的Objective-C的类》直击OC的灵魂——面向对象的封装特性;而《Objective-C语言的基本语法》与《数据类型》则补充了变量、常量及基本运算符的细节。特别值得一提的是《基础数据类型之间的转换》这一节,针对C语言基础数据类型与OC对象类型之间容易混淆的自动装箱与手动转换问题进行了专项讲解,这是新手极易踩坑的地方,也是本课程务实性的体现。
适合人群
本课程适合以下几类学习者:
1. **iOS开发初学者**:希望从底层逻辑入手,建立稳固的编程思维,而非仅停留在调用API的层面。
2. **转行开发者**:拥有Java或C++背景,希望通过对比学习快速迁移技能,理解动态语言特性。
3. **存量项目维护者**:需要阅读或修改包含大量Legacy OC代码的iOS项目,亟需补全语法知识盲区。
学习建议
学习Objective-C需要耐心和细致。建议学员在观看视频的同时,务必在Xcode中亲自敲写每一段代码,尤其是类的声明(.h)与实现(.m)分离的写法,以及内存管理的基础意识,应在初学阶段就养成良好习惯。不要急于求成,先把基础语法如数据类型转换、类结构等“死磕”透彻,后续学习更高级的OC特性(如协议、Block、KVC/KVO)时才会游刃有余。
总之,这门课程是通往iOS开发殿堂的一块坚实垫脚石。无论你最终是否长期深耕OC,这段学习经历都将为你打开一扇理解计算本质的窗户。
课程目录
1-1 [Objective-C的基础语法] 使用模板创建一个空白的Command Line Tool (03:40) 1-2 [Objective-C的基础语法] 解析第一个Objective-C程序的结构 (02:03) 1-3 [Objective-C的基础语法] Objective-C语言的简介 (03:36) 1-4 [Objective-C的基础语法] 创建和使用一个最简单的Objective-C的类 (01:54) 1-5 [Objective-C的基础语法] Objective-C语言的基本语法 (02:41) 1-6 [Objective-C的基础语法] Objective-C语言的数据类型 (02:51) 1-7 [Objective-C的基础语法] 基础数据类型之间的转换 (02:43) 1-8 [Objective-C的基础语法] Objective-C语言的变量和常量 (02:58) 1-9 [Objective-C的基础语法] 日志信息的打印 (02:26) 1-10 [Objective-C的基础语法] 操作符:算术运算符的使用 (01:43) 1-11 [Objective-C的基础语法] 操作符:关系运算符的使用 (01:29) 1-12 [Objective-C的基础语法] 操作符:逻辑运算符的使用 (01:28) 1-13 [Objective-C的基础语法] 操作符:位运算符的使用 (01:59) 1-14 [Objective-C的基础语法] 操作符:赋值运算符的使用 (02:12) 1-15 [Objective-C的基础语法] 流程控制:for循环语句的使用 (03:23) 1-16 [Objective-C的基础语法] 流程控制:for-in循环语句的使用 (02:32) 1-17 [Objective-C的基础语法] 流程控制:while循环语句的使用 (02:47) 1-18 [Objective-C的基础语法] 流程控制:嵌套循环语句的使用 (02:57) 1-19 [Objective-C的基础语法] 流程控制:break, continue, return循环 (04:12) 1-20 [Objective-C的基础语法] 流程控制:使用if和else进行条件判断 (03:13) 1-21 [Objective-C的基础语法] 流程控制:使用switch和case进行条件判断 (02:19) 2-1 [Objective-C的数据类型] NSNumber和基本数据类型的转换 (01:44) 2-2 [Objective-C的数据类型] NSString字符串类的使用详解 (05:23) 2-3 [Objective-C的数据类型] NSDate日期类以及日期和时间的格式化 (03:58) 2-4 [Objective-C的数据类型] NSURL网址类的使用 (01:41) 2-5 [Objective-C的数据类型] 使用数组来组织和管理数据 (02:31) 2-6 [Objective-C的数据类型] NSArray数组类的使用详解 (04:31) 2-7 [Objective-C的数据类型] NSMutableArray可变数组类的使用详解 (01:52) 2-8 [Objective-C的数据类型] 对包含数字的NSArray进行排序 (02:32) 2-9 [Objective-C的数据类型] 对包含字符串的NSArray进行排序 (01:48) 2-10 [Objective-C的数据类型] NSDictionary字典类的使用详解 (03:55) 2-11 [Objective-C的数据类型] NSSet集合类的使用和数组和去重 (03:14) 2-12 [Objective-C的数据类型] Objective-C的指针Pointer (02:42) 2-13 [Objective-C的数据类型] 利用指针的计算特性遍历数组 (02:26) 2-14 [Objective-C的数据类型] 使用数组存储和管理指针 (01:58) 2-15 [Objective-C的数据类型] 指向另一个指针的指针 (01:52) 2-16 [Objective-C的数据类型] 使用指针作为函数的参数 (01:40) 2-17 [Objective-C的数据类型] 使用指针作为函数的返回值 (02:32) 3-1 [Objective-C的进阶知识] 编译器在编译之前进行的预处理 (05:23) 3-2 [Objective-C的进阶知识] 使用typedef为类型指定新的名称 (01:36) 3-3 [Objective-C的进阶知识] 使用结构体组合不同类型的数据 (01:47) 3-4 [Objective-C的进阶知识] Objective-C的核心特性:类和对象 (04:07) 3-5 [Objective-C的进阶知识] 给Objective-C的类添加实例方法 (01:48) 3-6 [Objective-C的进阶知识] 给Objective-C的类添加类方法 (01:43) 3-7 [Objective-C的进阶知识] 指针在Objective-C方法中的应用 (02:38) 3-8 [Objective-C的进阶知识] 块的定义以及块在函数中的应用 (03:28) 3-9 [Objective-C的进阶知识] 以继承现有类的方式创建一个新的类 (03:02) 3-10 [Objective-C的进阶知识] 利用多态性实现基类和派生类之间的方法切换 (03:14) 3-11 [Objective-C的进阶知识] 利用动态绑定确定在运行时调用的方法 (02:24) 3-12 [Objective-C的进阶知识] 利用数据封装特性保护数据免受外部误用 (02:58) 3-13 [Objective-C的进阶知识] 使用类别向现有的类添加新的方法 (01:33) 3-14 [Objective-C的进阶知识] 使用扩展向具有源代码的类添加新的方法 (01:52) 3-15 [Objective-C的进阶知识] 使用协议来声明未来用于特定情况的方法 (02:39) 3-16 [Objective-C的进阶知识] 使用NSError类进行错误处理 (02:45) 3-17 [Objective-C的进阶知识] 使用@try, @catch和@finally进行异常处理 (02:15) 3-18 [Objective-C的进阶知识] 使用MRC手动引用计数进行对象的内存管理 (03:51) 3-19 [Objective-C的进阶知识] 使用ARC自动引用计数进行对象的内存管理 (02:00) 4-1 [Xcode开发软件的使用技巧] Xcode自带的项目模板介绍 (04:00) 4-2 [Xcode开发软件的使用技巧] 您的第一个工程项目 (01:48) 4-3 [Xcode开发软件的使用技巧] 使用资源文件夹导入并管理图片素材 (02:29) 4-4 [Xcode开发软件的使用技巧] 设置项目的属性 (02:51) 4-5 [Xcode开发软件的使用技巧] 检测模拟器在各个方向上的切换 (02:22) 4-6 [Xcode开发软件的使用技巧] iOS模拟器的基本使用方法 (02:05) 4-7 [Xcode开发软件的使用技巧] 使用不同设备类型的iOS模拟器 (02:36) 4-8 [Xcode开发软件的使用技巧] 使用iOS模拟器演示App的生命周期 (03:25) 4-9 [Xcode开发软件的使用技巧] Xcode左侧界面介绍一 (03:49) 4-10 [Xcode开发软件的使用技巧] Xcode左侧界面介绍二 (02:17) 4-11 [Xcode开发软件的使用技巧] Xcode右侧界面介绍 (04:17) 4-12 [Xcode开发软件的使用技巧] Xcode代码区的样式设置 (01:09) 4-13 [Xcode开发软件的使用技巧] Xcode声音效果的设置 (01:17) 4-14 [Xcode开发软件的使用技巧] 快速查找并打开文件 (01:09) 4-15 [Xcode开发软件的使用技巧] 快速更改同名变量 (01:09) 4-16 [Xcode开发软件的使用技巧] 将代码段提取为方法 (01:29) 4-17 [Xcode开发软件的使用技巧] 代码的查找和替换 (01:15) 4-18 [Xcode开发软件的使用技巧] 代码编写的自动补全功能 (02:42) 4-19 [Xcode开发软件的使用技巧] 代码方法块的折叠与展开 (01:52) 4-20 [Xcode开发软件的使用技巧] 代码语法颜色样式的设置 (02:20) 4-21 [Xcode开发软件的使用技巧] 几种在控制台输出日志的方式 (01:15) 4-22 [Xcode开发软件的使用技巧] 代码的Debug调试 (02:16) 4-23 [Xcode开发软件的使用技巧] 为应用程序添加图标 (01:56) 4-24 [Xcode开发软件的使用技巧] 读取iOS应用的配置信息 (01:42) 5-1 [创建视图和视图控制器] UIView视图的基本使用 (01:34) 5-2 [创建视图和视图控制器] UIView视图的层次关系 (01:36) 5-3 [创建视图和视图控制器] UIView视图的基本操作 (03:52) 5-4 [创建视图和视图控制器] 给图像视图添加边框效果 (01:33) 5-5 [创建视图和视图控制器] 给图像视图添加圆角效果 (01:16) 5-6 [创建视图和视图控制器] 给图像视图添加阴影效果 (01:20) 5-7 [创建视图和视图控制器] UIView视图的渐变填充 (01:31) 5-8 [创建视图和视图控制器] UIView视图的纹理填充 (58) 5-9 [创建视图和视图控制器] CGAffineTransform仿射变换的使用 (01:18) 5-10 [创建视图和视图控制器] UITapGestureRecognizer手势之单击 (02:18) 5-11 [创建视图和视图控制器] UITapGestureRecognizer手势之长按 (02:15) 5-12 [创建视图和视图控制器] UITapGestureRecognizer手势之双击 (02:23) 5-13 [创建视图和视图控制器] 视图控制器和滚动视图 (08:10) 5-14 [创建视图和视图控制器] 选项卡(标签)视图控制器的使用 (03:27) 5-15 [创建视图和视图控制器] 导航视图控制器的使用 (02:18) 5-16 [创建视图和视图控制器] 导航控制器的入栈和出栈 (06:15) 5-17 [创建视图和视图控制器] 自定义导航控制器的导航按钮 (02:25) 5-18 [创建视图和视图控制器] 在故事板中设置初始视图控制器 (02:51) 5-19 [创建视图和视图控制器] 在故事板中使用标签和按钮控件 (04:37) 6-1 [常见UIKit控件的使用] UIButton控件的使用 (02:47) 6-2 [常见UIKit控件的使用] UIButton图片按钮的使用 (02:06) 6-3 [常见UIKit控件的使用] UILabel文本标签的使用 (01:27) 6-4 [常见UIKit控件的使用] UILabel自定义文字样式 (03:05) 6-5 [常见UIKit控件的使用] UISwitch开关控件的使用 (02:11) 6-6 [常见UIKit控件的使用] UITextField控件的使用 (02:59) 6-7 [常见UIKit控件的使用] 普通警告窗口的使用 (02:12) 6-8 [常见UIKit控件的使用] 动作表样式警告窗口的使用 (02:32) 6-9 [常见UIKit控件的使用] UIDatePicker日期时间选择器 (03:08) 6-10 [常见UIKit控件的使用] 使用WKWebView控件加载网页 (01:11) 6-11 [常见UIKit控件的使用] 使用WKWebView控件加载本地HTML (01:04) 6-12 [常见UIKit控件的使用] 为MKMapView指定地理坐标 (01:30) 6-13 [常见UIKit控件的使用] 在MKMapView地图上显示提示框 (02:49) 6-14 [常见UIKit控件的使用] 使用UITableView制作简单表格 (02:41) 6-15 [常见UIKit控件的使用] 设置UITableView单元格的高度 (02:37) 6-16 [常见UIKit控件的使用] 设置UITableView单元格图标 (02:44) 6-17 [常见UIKit控件的使用] UITableView滑动到指定单元格 (03:06) 6-18 [常见UIKit控件的使用] 自定义UITableView单元格Accessory样式 (03:09) 6-19 [常见UIKit控件的使用] 删除UITableView单元格 (03:38) 6-20 [常见UIKit控件的使用] 插入UITableView单元格 (03:32) 6-21 [常见UIKit控件的使用] 调整UITableView单元格的顺序 (03:39) 7-1 [动画和多媒体编程] 使用图形上下文按一定比例缩放图片 (02:23) 7-2 [动画和多媒体编程] 使用图形上下文转换图片为灰度图 (02:14) 7-3 [动画和多媒体编程] 使用CoreImage框架设置图片的单色效果 (01:42) 7-4 [动画和多媒体编程] 使用CoreImage框架更改图片的色相 (01:58) 7-5 [动画和多媒体编程] 使用CoreImage框架给图片添加马赛克效果 (01:32) 7-6 [动画和多媒体编程] 使用UIBlurEffect给图片添加模糊效果 (01:43) 7-7 [动画和多媒体编程] 遍历系统提供的所有滤镜 (01:19) 7-8 [动画和多媒体编程] 使用CATransaction Reveal制作渐变动画 (01:30) 7-9 [动画和多媒体编程] 使用CATransaction Push制作滑动入场动画 (01:21) 7-10 [动画和多媒体编程] UIView视图的动画块 (01:54) 7-11 [动画和多媒体编程] UIView视图卷曲动画的制作 (01:56) 7-12 [动画和多媒体编程] 检测UIView视图动画的结束事件 (02:25) 7-13 [动画和多媒体编程] 使用UIImageView制作帧动画 (01:35) 7-14 [动画和多媒体编程] 使用SystemSoundId播放简短声音 (01:30) 7-15 [动画和多媒体编程] 使用AudioPlayer播放音乐 (01:47) 7-16 [动画和多媒体编程] 实现音乐的背景播放功能 (02:53) 7-17 [动画和多媒体编程] 使用MediaPlayer框架播放影片 (01:58) 7-18 [动画和多媒体编程] 使用Quarz2d绘制自定义图形 (03:52) 7-19 [动画和多媒体编程] 创建位移关键帧动画 (02:07) 7-20 [动画和多媒体编程] 截取某一帧作为影片缩略图 (02:17) 8-1 [数据解析和网络编程] 程序沙箱结构中常用的几个目录 (02:50) 8-2 [数据解析和网络编程] 文件夹的创建 (01:26) 8-3 [数据解析和网络编程] 创建各种类型的文件 (03:27) 8-4 [数据解析和网络编程] 对文件夹进行遍历操作 (01:31) 8-5 [数据解析和网络编程] 复制、移动和删除文件 (04:33) 8-6 [数据解析和网络编程] 退出系统前的事件处理 (01:23) 8-7 [数据解析和网络编程] 检测App是否**运行 (02:16) 8-8 [数据解析和网络编程] 读取和解析Plist属性列表文件 (02:42) 8-9 [数据解析和网络编程] NSKeyedArchiver存储和解析数据 (04:05) 8-10 [数据解析和网络编程] 解析Xml文档 (04:27) 8-11 [数据解析和网络编程] 解析Json文档 (01:23) 8-12 [数据解析和网络编程] SQLite数据库和表的创建 (02:47) 8-13 [数据解析和网络编程] SQLite数据库的删改查操作 (04:20) 8-14 [数据解析和网络编程] 检测网络的连接状态 (03:27) 8-15 [数据解析和网络编程] 在App内打开网页电话短信邮件和地图 (02:35) 8-16 [数据解析和网络编程] MailComposeViewController编写邮件 (03:52) 8-17 [数据解析和网络编程] 使用同步Get的方式查询某地天气 (04:43) 8-18 [数据解析和网络编程] 使用异步Get的方式查询关于猫的随机信息 (02:41) 8-19 [数据解析和网络编程] 使用同步Post的方式查询IP地址信息 (02:55) 8-20 [数据解析和网络编程] 使用异步Post的方式下载并显示猫的随机图片 (02:47) 8-21 [数据解析和网络编程] 使用URLSession下载图片并显示下载进度 (04:52) 8-22 [数据解析和网络编程] 使用URLSession上传图片至服务器 (01:35) 8-23 [数据解析和网络编程] 使用Timer执行定时任务 (01:36) 8-24 [数据解析和网络编程] PerformSelector消息处理方法 (02:46) 9-1 [实用的进阶开发技能] 隐藏顶部的状态栏 (01:29) 9-2 [实用的进阶开发技能] 列出设备上所有的字体 (01:00) 9-3 [实用的进阶开发技能] 给代码方法添加宏注释 (01:22) 9-4 [实用的进阶开发技能] 计算两个日期间的差值 (01:28) 9-5 [实用的进阶开发技能] 正则表达式的使用 (01:14) 9-6 [实用的进阶开发技能] 在Objective-C文件调用Swift的类和方法 (02:40) 9-7 [实用的进阶开发技能] 使用Xcode的版本管理功能(SCM) (02:36) 9-8 [实用的进阶开发技能] 实现App的Settings设置 (04:05) 9-9 [实用的进阶开发技能] 陀螺仪设备的使用 (02:46) 9-10 [实用的进阶开发技能] 定位设备的使用 (02:28) 9-11 [实用的进阶开发技能] 系统本地通知的创建 (03:14) 9-12 [实用的进阶开发技能] 从系统相册中读取图片 (03:02) 9-13 [实用的进阶开发技能] 调用相机并获取拍摄后的图片 (02:59) 9-14 [实用的进阶开发技能] 使用CoreText框架创建富文本 (02:14) 9-15 [实用的进阶开发技能] 截取当前屏幕上的显示内容 (01:56) 9-16 [实用的进阶开发技能] 给图片添加水印效果 (02:32) 9-17 [实用的进阶开发技能] 使用CGBlendMode改变图片颜色 (03:10) 9-18 [实用的进阶开发技能] 图像中人物的面部检测 (02:59) 9-19 [实用的进阶开发技能] 使用Thread暂停动作的执行 (01:33) 9-20 [实用的进阶开发技能] 多线程的同步与异步 (02:09) 9-21 [实用的进阶开发技能] 使用GCD多线程技术下载图片 (02:02) 9-22 [实用的进阶开发技能] 使用MD5加密数据 (02:13) 9-23 [实用的进阶开发技能] 查看运行中程序的元素层级 (03:36) 9-24 [实用的进阶开发技能] App内容文本的本地化 (04:27) 9-25 [实用的进阶开发技能] 将常见的功能打包成静态库 (07:22) 9-26 [实用的进阶开发技能] 将常见的功能打包成动态库 (05:24) 9-27 [实用的进阶开发技能] 组件化编程:快速实现常见的iOS程序项目结构 (04:20) 9-28 [实用的进阶开发技能] 组件化编程:URL-Router方案的实现 (05:03) 9-29 [实用的进阶开发技能] 组件化编程:Target-Action方案的实现 (04:22) 9-30 [实用的进阶开发技能] 组件化编程:Protocol-Class方案的实现 (05:14) 9-31 [实用的进阶开发技能] App盈利:IAP内购功能的具体实现和测试 (05:06)





