------- <a href="http://www.itheima" target="blank">android培训</a>、<a href="http://www.itheima" 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.个人条件:
1)英文水平:认识26个英文字母,能区分大小写 2)学习态度:积极思考、积极动手、能吃苦、有兴趣2.开发系统及工具:
1)计算机系统:MacOS X 2)开发工具:Xcode 3)真机设备:iPad或iPhone(可以用Xcode中的模拟器,但无法直观的体现程序的内存占用情况) 4)编程语言:C语言、Objective-C、C++(可选) 5)iOS证书:调试证书(可选)、发布证书(可选)(用于真机调试程序)提醒一下:前期学习中,个人的学习热情才是最重要的条件,如果目前没有MacOS的系统环境也不必着急,可以现在wndows环境下学习c语言基础,学习object-C之前搭建好MacOS系统就可以了。搭建MacOS操作系统的方法有很多,不必非要入手Mac电脑。 下面推荐一个windows环境下搭建c语言开发学习环境的方法: http://wwwblogs/shudibo/archive/2013/01/12/2857279.html
我基本是按照这个教程搭建的windows下的c语言开发环境,唯一区别是,我的编辑器用的是CodeBlocks
tips:
编辑器是编写代码所用的工具,理论上用记事本也可以编辑代码,所以编辑器不是必须的。 编译器是对编写好的代码做加工用的,加工后生成可执行程序,编译器是必须装得。 这里只是简单概括,编译的具体含义后文会提到,想要比较官方的定义可以去百度。 关于iOS证书,设备破解后,可以用X宝上买来的山寨调试证书,比官方的便宜不少。三、开发环境搭建:
因为Xcode只能在MacOS中运行,所以必须要有MacOS操作系统作为开发平台。获取MacOS系统有以下3种方法: 1.安装黑苹果,即在其他品牌计算机上安装MacOS系统和相关驱动 特点:成本低,速度快,安装难度大 适合人群:技术宅 =。= 2.虚拟机,即在windows系统中开启虚拟机,再在虚拟机中模拟MacOS系统 特点:成本低,对计算机性能要求很高,MacOS运行速度取决于实际计算机性能高低 适合人群:硬件发烧友 3.Mac设备(一体机、MacBook、Mac mini) 特点:心会痛、速度快 适合人群:土豪看到这里,想学iOS的童鞋们肯定会担心,那些土豪设备iphone、ipad等怎么弄? 1.官网翻新机还是比较靠谱的。 2.万能的X宝可以淘到二手的。 3.实在不行,就管同学撒撒娇,借来用以下呗。又不是天天用。
tips:
如果准备入手设备的同学,建议买ipad,因为iphone上运行的程序在ipad上都能兼容。四、学习方法推荐
1.从笔记、代码等资料中复习视频讲过的知识点 2.看视频时不要走神,尽量少通过回看视频来找落下的知识点,那样很浪费时间。 3.多做练习题,记录练习中遇到的BUG和解决方案 4.根据自己的理解总结学到的知识点 5.初学者应该抓住重点,不要钻牛角尖 6.遇到问题了,优先自己尝试解决,其次谷歌百度,最后再发论坛求助。这样效率最高。 7.调整作息,找到适合自己的学习节奏。
五、C语言概述
tips:
iOS开发需要学习的主要程序设计语言有:C语言、C++、Objective-C,其中C++、Objective-C都是以C语言为基础,从C语言衍生出来的。因此,C语言是开发iOS软件的基础。
1.计算机和软件常识
1)计算机的运行原理,如下图所示:tips:
对于计算机来说,内存是固定不变的。软件所吃得内存越少,也就能在配置较低的终端上运行的更流畅,给用户的体验也就越好。所以对于C语言编程,尤其要注意代码的高效性(即占用内存低、运算步骤少)
2)计算机只能识别0和1
计算机只能识别由0和1组成的指令,这种由0和1组成的语言被称作机器语言。
3)计算机和软件的联系
软件的基本概念:软件即指令的合集。
软件的安装运行过程:安装在硬盘中,运行在内存中
开发软件的目的:写出能控制计算机的指令
4)计算机语言:一门能与计算机交流的语言,方便程序员写出一连串的指令
2.计算机语言发展史
1)计算机语言从机器语言过渡到汇编语言,再发展到高级语言,而后又分为面向过程和面向对象。我们现在所学的C语言是高级语言中的一种。 2)各种计算机语言的特点:语言发展 | 种类 | 优点 | 缺点 | 用途 |
机器语言 | 0、1 | 执行力强 | 可读性差、难记忆、易出错、不同硬件不通用 | 计算机厂商专业人员 |
汇编语言 | 英文符号 | 占内存少、执行速度快 | 可移植性差、不同硬件不通用、 符号很多、难记 | 编写单片机语言、系统内核、驱动程序、破解软件、做病毒 |
高级语言 | C、C++、 C#、java Objective-C | 简单、易用、不用面对硬件、具有可移植性 | 程序不能被计算机直接识别,需要翻译成0、1 | 编写软件 |
面向过程 | ||||
面向对象 |
tips:
关于面向过程和面向对象,我的理解是他们只是两种不同的编程思想,与用哪种语言无关。我也是个小小菜鸟,面向过程和面向对象的具体特点我就不妄加评述了,有兴趣的童鞋可以自己去百度一下。
推荐一个百度知道上的解答:http://zhidao.baidu/link?url=fj6ZK8ljjqQVWVG4xZ7-Kvhf0xJHNSUTJ4sxBob0kPVDKRkQEl-jBZP8DaJ4HhGRxE5Kle5c-S4rkAw0umHLV_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)先学习c语言的原因1>OC基于C
2>OC跟C的思想和语法很多地方不太一样,而且OC能和C混用
3>C是所有编程语言中的经典,很多高级语言都是从C语言中衍生出来的,比如C++、C#、Objective-C等2)c语言的特点
1>丰富的运算符
2>丰富的数据类型
3>可以直接操作硬件
4>高效的目标代码
5>可移植性好
3)版本问题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:
目前c99和c11的代码都有在用,如果你用c99标准写的代码编译器报错,可以在你的开发工具配置中添加对c99的支持。六、第一个C语言程序
1.开发工具的选择
1)Xcode 苹果官方提供的开发利器、简化开发过程、有高亮显示功能,自带clang编译器。 2)终端 用命令行来操作计算机对代码进行编译链接。(编译链接后面章节有解释)tips: unix系统都自带有终端程序,用来以命令行的方式操作计算机。
2.代码的编写
1)程序结构
程序是有一个或多个“函数”组成的,程序启动时,都会先执行main函数。 main函数是程序的入口,一个程序中只能有一个main函数。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
}
上面代码中有三个函数,一个是main函数,一个play函数,一个printf函数。(虽然我们并没有见到printf函数的主体,但代码第一句的#include <stdio.h>已经对printf函数进行了声明)
tips:
既然“\n”用作换行,那么当我想输出“\n”这个字符时,该如何写呢?“\n”中的’\’是转义字符,转义字符把n转义成为一个换行符。当我们想实际输出\时,可以这样写“\\”,第一个\还是代表转义字符,它把第二个\转义为真实的字符输出出来。
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……
更多推荐
黑马程序员——零基础学习iOS开发——02学前准备
发布评论