------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ---------
一、iOS概述
1.什么是iOS
iOS是一款由苹果公司开发的操作系统(OS是OperatingSystem的简称),就像平时在电脑上用的Windows XP、Windows 7,都是操作系统。
那什么是操作系统呢?操作系统其实是一种软件,是直接运行在硬件(电脑、手机等)上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
2.操作系统的重要性
当我们打开手机上的一个照相机软件,按下屏幕上的拍照按钮时,照相机软件会通知操作系统“喂,我需要拍照!”,接着操作系统就会控制手机上的摄像头进行聚焦、拍照。
3.iOS与安卓的比较
| iOS | android |
系统架构 | 基于UNIX | 基于Linux的虚拟机 |
系统安全性 | 安全、稳定 | 安全性略低、漏洞较多 |
开发难易度 | 强大的SDK、开发工具 | 强大的SDK |
是否开源 | 不开源 | 开源 |
设备的种类 | iPhone\iPad等 | 数不清的设备类型 |
背后的BOSS | Apple | |
应用商店 | AppStore(08年上线) | GooglePlay |
二、学前准备
学习向来都不是一件容易或快乐的事,所以,为了避免半途而废,最好确认自己具备了如下条件:
1.个人条件:
2.开发系统及工具:
tips:
三、开发环境搭建:
tips:
四、学习方法推荐
五、C语言概述
tips:
iOS开发需要学习的主要程序设计语言有:C语言、C++、Objective-C,其中C++、Objective-C都是以C语言为基础,从C语言衍生出来的。因此,C语言是开发iOS软件的基础。
1.计算机和软件常识
tips:
对于计算机来说,内存是固定不变的。软件所吃得内存越少,也就能在配置较低的终端上运行的更流畅,给用户的体验也就越好。所以对于C语言编程,尤其要注意代码的高效性(即占用内存低、运算步骤少)
2)计算机只能识别0和1
计算机只能识别由0和1组成的指令,这种由0和1组成的语言被称作机器语言。
3)计算机和软件的联系
软件的基本概念:软件即指令的合集。
软件的安装运行过程:安装在硬盘中,运行在内存中
开发软件的目的:写出能控制计算机的指令
4)计算机语言:一门能与计算机交流的语言,方便程序员写出一连串的指令
2.计算机语言发展史
语言发展 | 种类 | 优点 | 缺点 | 用途 |
机器语言 | 0、1 | 执行力强 | 可读性差、难记忆、易出错、不同硬件不通用 | 计算机厂商专业人员 |
汇编语言 | 英文符号 | 占内存少、执行速度快 |
可移植性差、不同硬件不通用、
符号很多、难记
| 编写单片机语言、系统内核、驱动程序、破解软件、做病毒 |
高级语言 |
C、C++、
C#、java
Objective-C
| 简单、易用、不用面对硬件、具有可移植性 | 程序不能被计算机直接识别,需要翻译成0、1 | 编写软件 |
面向过程 | ||||
面向对象 |
tips:
关于面向过程和面向对象,我的理解是他们只是两种不同的编程思想,与用哪种语言无关。我也是个小小菜鸟,面向过程和面向对象的具体特点我就不妄加评述了,有兴趣的童鞋可以自己去百度一下。
3)三种语言的对比:
分别用机器语言、汇编语言、C语言(高级语言)来写一个计算1+1的程序
1> 机器语言:简直是天书!!!
10111000 00000001
00000000 00000101
00000001 00000000
2)> 汇编语言:可读性稍微好一点,但是麻烦
MOV AX,1
ADD AX,1
3> C语言:精简、通俗易懂
1+1
3.c语言简介
1>OC基于C
2>OC跟C的思想和语法很多地方不太一样,而且OC能和C混用
3>C是所有编程语言中的经典,很多高级语言都是从C语言中衍生出来的,比如C++、C#、Objective-C等2)c语言的特点
1>丰富的运算符
2>丰富的数据类型
3>可以直接操作硬件
4>高效的目标代码
5>可移植性好
1>1983年美国国家标准局(AmericanNational Standards Institute,简称ANSI)成立了一个委员会,开始制定C语言标准的工作
2>1989年C语言标准被批准,这个版本的C语言标准通常被称为ANSIC
3>1999年,国际标准化组织ISO又对C语言标准进行修订,在基本保留原来C语言特征的基础上,针对应该的需要,增加了一些功能,命名为C99
4>2011年12月8日,ISO正式公布C语言新的国际标准草案:C11tips:
六、第一个C语言程序
1.开发工具的选择
2.代码的编写
1)程序结构
2)函数的基本概念
函数名:一个程序中由无数个函数组成,每个函数都有自己的名称
调用(执行)函数:根据函数名就可以调用对应的函数,执行相应的功能
函数的执行和调用现在不用过分纠结,以后会慢慢理解。3)试着编写一个main函数:
#include <stdio.h> // 在程序开头写“#include <stdio.h>”后,方可调用系统自带函数
int play()
{
<span style="font-family: Helvetica;">return 0; //函数结束,返回0</span>
}
int main() // 编写main函数 大括号{ }中的内容是函数体
{
play(); // 调用play这个函数
printf("第一个C语言程序\n"); //printf是操作系统自带的函数。\n代表另起一行的意思,它不会被输出到屏幕上。
return 0; //函数结束,返回0
}
tips:
printf("\\n"); // 如果这样写,就会输出一个"\n"
tips:
新手常见错误
1.只有大括号内的内容需要加分号
2.函数后需要加()
3.中英文标点别搞错
3.程序的编写步骤
1)编写代码
2)编译:把C语言翻译成0和1
工具 Xcode匹配的 Clang编译器用终端执行编译命令的指令:cc -c 文件名.c
编译成功,会生成一个.o目标文件
3)连接:把编译后的.o目标文件与系统自带的函数库结合,生成.out可执行文件
Xcode 连接器终端执行指令:cc 文件名.o
4)程序运行
1>两种运行方式
1.直接双击打开a.out文件
2. 终端中使用 ./a.out指令
2>修改文件内容之后,一定要重新编译、链接,再运行
tips:
建议初学者采用文本编辑器和命令行终端作为开发环境,过早依赖开发工具的自动补充代码功能会导致我们的基础语法不扎实,造成以后离开工具就不会写代码的尴尬境地。
这里是我总结的一些常用unix终端操作命令:
cd /abc | 进入绝对目录 /abc |
cd abc | 进入当前目录内的abc目录 |
./ | 当前路径内的 |
pwd | 查看当前路径 |
ls | 查看目录内文件(夹) |
touch 文件名 | 新建文件 |
open 文件名 | 打开文件 |
cc -c 文件名.c | 编译文件 |
cc 文件名.o | 连接文件 |
cc 文件名.c | 连续执行编译和连接操作 |
cc xxx.o -o 文件名 | 链接时,指定生成文件的文件名 |
4.总结
1) 程序运行过程
2) 总结常见文件的拓展名
.c是C语言源文件,在编写代码的时候创建
.o是目标文件,在编译成功的时候产生
.out是可执行文件,在链接成功的时候产生
3) 总结clang指令
编译:cc –c xxx.c
链接:cc xxx.o
编译、链接:cc xxx.c
运行可执行文件:./a.out
4) 开发中会遇到哪些错误?如何解决?
语法错误,可以通过编译器的报错信息解决
逻辑错误,需要耐心调试程序
5) 学习建议
学编程并不是学英文
初学者应优先保证程序的可读性
初学者不要过于寻根问底
七.练习题
用2种不同的代码方式输出下面的图案
************
** itcast **
************
方法一:
#include <stdio.h>
int main()
{
printf("************\n** itcast **\n************\n");
return0;
}
方法二:
#include <stdio.h>
int main()
{
printf("************\n");
printf("** itcast **\n");
printf("************\n");
return0;
}
小结:
1.想学好C语言就必须重视对内存原理的学习
2.C豫园程序运行步骤:编写源代码文件.m —> 编译.m文件 —>生成目标代码文件.o —> 连接.o文件 —> 生成可执行文件 a.out —> 运行程序 ./a.out
3.当用到系统自带函数时,在文件头部加上 #include <stdio.h>
4.终端命令:
编译:cc -c xxx.c
连接:cc xxx.o
编译连接:cc xxx.c
运行程序:./a.out
5.注意tips提示的内容。
To be continue……