一、 学前提醒

  1. 其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言
  2. iOS开发需要学习的主要程序设计语言有:C语言、C++、Objective-C,其中C++、Objective-C都是以C语言为基础,从C语言衍生出来的。因此,C语言是开发iOS软件的基础。
  3. 从现在开始,沉下心来学习传说中的C语言,学习它的语法
  4. 正式学习之前,先提醒一句:学习一门语言的语法是比较枯燥的事,很像是在学习1+1等于几,不可能在学习C语言语法过程中就能马上做出一些好看的iPhone软件界面效果

二、 计算机和软件常识

1. 计算机运行原理

1) 硬件基本组成:硬盘、内存、CPU

2) 各个部件之间的运作协调(右图)

2. 计算机只能识别0和1

1) 0和1组成的指令

2) 0和1组成的数据

3. 计算机和软件的联系

1) 软件的基本概念:指令的集合

2) 软件的安装运行过程

u 安装在硬盘

u 运行在内存

3) 为什么要开发软件:写出能控制计算机的指令

4. 计算机语言

1) 一门跟计算机打交道的语言

2) 方便写出一连串的指令

三、 计算机语言发展史

1. 机器语言

1) 简介:所有代码里面只有0和1,每一条指令称为“机器指令”

2) 优点

u 代码能被计算机直接识别,直接对硬件产生作用,程序的执行效率非常高

u 能直接访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等

3) 缺点

u 程序全是些0和1的指令代码,可读性差,还容易出错

u 对硬件的依赖性很强,因此不同型号计算机的机器语言又不一样。也就是说,如果2台不同型号的机器想实现一样的功能,需要编写2套完全不同的代码

u 要熟记所用计算机的全部指令和指令的涵义,指令又多又难记

4) 使用场合

综上所述,机器语言很难掌握和推广,现在除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了

2. 汇编语言

1) 简介:用英文单词等符号代替机器指令

2) 优点

u 像机器语言一样,可以直接访问、控制计算机的各种硬件设备

u 占用内存少,执行速度快

3) 缺点

u 不同的机器有不同的汇编语言语法和编译器,代码缺乏可移植性,也就是说,一个程序只能在一种机器上运行,换到其他机器上就不能运行

u 符号非常多、难记,即使是完成简单的功能也需要大量的汇编语言代码,很容易产生BUG,难于调试

u 必须对硬件非常了解,开发效率很低,周期长且单调

4) 使用场合

u 操作系统内核、驱动程序、单片机程序

u 软件的加密、解密、破解

u 病毒的制作、防治

u 程序的调试、分析

3. 高级语言

1) 简介:接近自然语言

2) 优点

u 简单、易用、易于理解,语法和结构类似于普通英文

u 远离对硬件的直接操作,使得一般人经过学习之后都可以编程,而不用太熟悉硬件知识

u 一个程序还可以在不同的机器上运行,具有可移植性

3) 缺点

u 程序不能直接被计算机识别,需要经编译器翻译成二进制指令后,才能运行到计算机上

4) 种类:C语言、C++、C#、Java、Objective-C等

4. 三种语言的对比

分别用机器语言、汇编语言、C语言(高级语言)来写一个计算1+1的程序

1) 机器语言:简直是天书!!!

10111000  00000001

00000000  00000101

00000001  00000000

2) 汇编语言:可读性稍微好一点,但是麻烦

MOV AX,1

ADD AX,1

3) C语言:精简、通俗易懂

1+1

四、 C语言简介

1. 先学习C语言的原因

1) OC基于C

2) OC跟C的思想和语法很多地方不太一样,而且OC能和C混用

3) C是所有编程语言中的经典,很多高级语言都是从C语言中衍生出来的,比如C++、C#、Objective-C等

2. 简史

1) C语言于1972年发明,首次使用是用于重写UINX操作系统(UNIX以前主要是用汇编语言写的,它奠定了操作系统的基础)

2) 随着UNIX操作系统的成功,C语言也得到了大幅度地推广,被先后使用到大、中、小、微型主机上,至今还是世界上最流行、使用最广泛的高级程序设计语言之一

3) C语言是一门面向过程的语言,非面向对象的语言

3. 特点

1) 丰富的运算符

2) 丰富的数据类型

3) 可以直接操作硬件

4) 高效的目标代码

5) 可移植性好

4. 主要用途

1) 编写系统软件、图形处理、单片机程序、嵌入式系统开发

2) 编写游戏外挂

3) 编写android程序

4) 编写iOS程序

……

5. 版本问题

1) 1983年美国国家标准局(American National Standards Institute,简称ANSI)成立了一个委员会,开始制定C语言标准的工作

2) 1989年C语言标准被批准,这个版本的C语言标准通常被称为ANSI C

3) 1999年,国际标准化组织ISO又对C语言标准进行修订,在基本保留原来C语言特征的基础上,针对应该的需要,增加了一些功能,命名为C99

4) 2011年12月8日,ISO正式公布C语言新的国际标准草案:C11

ios必须知道的事情的更多相关文章

  1. iOS端给unity发送消息,实现两者交互。

    上一篇我们简单说了一下unity发消息给iOS端.现在我们就来说一下iOS端给unity发送消息的简单使用. 首先iOS端做得事情其实很简单就一句话,直接上代码 /** * 第一个参数:是unity那 ...

  2. 阐明iOS证书和provision文件

    译:阐明iOS证书和provision文件 许多iOS开发人员都会和你说在iOS开发很困惑的问题之一,将app真正运行在真实的设备(iPhone iPad而不是模拟器),因为所有的这些都会涉及从苹果获 ...

  3. 正式版/免费版 Xamarin 体验与拥抱

    感谢MS, 感谢老纳.终于把 Xamarin 这个磨人的小妖精给收了,在也不用向大神要破解补丁了, 终于可以光明正大的使用了!! 跟据实践, 如果你们想体验一下 .NET 开发 IOS /Androi ...

  4. ios delegate你必须知道的事情

    在我们的class中设计delegate的时候,我们通常会有几个注意事项. 假设我的class叫做MyClass,那我们可能会有定义一个MyClassDelegate这个protocol当作我的del ...

  5. 关于IOS中的delegate必须知道的事情

    当你开始写iOS程式不久,应该开始面对到很多的delegate, 不管是用别人的library或是自己写library,可能都逃不了delegate. 为了怕有些人不知道什么是delegate,在这边 ...

  6. 学习iOS前我们需要知道的事情

    什么是iOS iOS是一款由苹果公司开发的操作系统(OS是Operating System的简称),就像平时在电脑上用的Windows XP.Windows 7,都是操作系统 那什么是操作系统呢?操作 ...

  7. 近期unity ios接入的事情

    1,  在接入苹果内支付的时候,遇到一个很严重的问题,使用的公司的moni2来测试的,但是在测试的过程中发现每次调用oc的内支付代码后,总会先回调一个支付成功,然后弹出输入密码框,当点击取消后,再一次 ...

  8. iOS端临近封包时要做哪些事情?

    iOS封包前的注意事项: 0.功能测试,打点测试都已OK 1.创建case,使用master执行此轮case,修改版本号 2.建议使用各个系统的机型,如8,9,10,11,12, iPad等 3.ma ...

  9. ios 瀑布流的那些事情

    转载: 屎壳郎情调-成长日记 首先要知道:瀑布流的核心就是要获取到图片的长宽 网上的很多例子都是加载本地图片的 对于新手而言 改成加载网络图片的确是有点压力的  因为本地的图片 我们是很容易就能获取到 ...

随机推荐

  1. WebView输入框提示

    做基于WebView应用时,页面上有一个输入框,当输入的文字过多时,超过输入框的行数时,输入框能够滚动,这时间问题来了,输入的提示箭头会移动到输入框外,如何解决这个问题呢,查找chromium源码如下 ...

  2. C#编程总结(四)多线程应用

    C#编程总结(四)多线程应用 多线程应用很广泛,简单总结了一下: 1)不阻断主线程,实现即时响应,由后台线程完成特定操作2)多个线程,完成同类任务,提高并发性能3)一个任务有多个独立的步骤,多个线程并 ...

  3. 介绍开源的.net通信框架NetworkComms框架 源码分析(十一)PacketBuilder

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是 ...

  4. Oracle--(Hierarchical Queries)层级查询

    内容来自: Oracle® Database SQL Language Reference 11g Release 2 (11.2) E41084-03. empolyees表来自hr方案,wareh ...

  5. VS2010如何使用Visual Studio Online在线服务管理团队资源(在线TFS)

    前言 Visual Studio Online,也就是以前的Team Foundation Service,从名字可以看出这是一个团队资源管理服务.在微软的云基础架构中运行,无需安装或配置任何服务器, ...

  6. MySQL 语句大全--------添加列,修改列,删除列

    ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table ...

  7. linux 如何改变文件属性与权限

    我们知道档案权限对于一个系统的安全重要性,也知道档案的权限对于使用者与群组的相关性, 那如何修改一个档案的属性与权限呢? 我们这里介绍几个常用于群组.拥有者.各种身份的权限的指令.如下所示: chgr ...

  8. 本机jdbc连接报The user specified as a definer ('root'@'%') does not exist

    昨晚一台测试服务器连接本机的mysql时,有些调用存储过程报"The user specified as a definer ('root'@'%') does not exist" ...

  9. c# datagridview禁止自动生成额外列

    在某些时候,处于重用pojo的考虑,我们希望在不同的datagridview之间进行复用,这就涉及到pojo中的字段会比有些datagridview所需要的字段多,默认情况下,.net对于pojo中的 ...

  10. 附7 turbine

    一.作用 聚集同一个微服务的相同的commandKey.Threadpool.commandGroupKey数据进行聚合 二.配置 1.集群(cluster)(turbine聚集数据的粒度) turb ...