当前位置:文档之家› Objective-C_2.0_Mac和iOS开发实践指南

Objective-C_2.0_Mac和iOS开发实践指南

Objective-C_2.0_Mac和iOS开发实践指南
Objective-C_2.0_Mac和iOS开发实践指南

Objective-C 2.0 Mac和iOS开发实践指南第1章 C,Objective-C的基础

? 1.1 C程序的结构? 1.1.1 main函数

? 1.1.2 格式化? 1.1.3 注释

? 1.1.4 变量和函数名? 1.1.5 命名惯例

? 1.1.6 文件? 1.2.1 整数类型

? 1.2.2 浮点类型? 1.2.3 真值

? 1.2.4 初始化? 1.2.5 指针

? 1.2.6 数组? 1.2.7 字符串

? 1.2.8 结构? 1.2.9 typedef

? 1.2.10 枚举常量? 1.3.1 算术运算符

? 1.3.2 余数运算符? 1.3.3 自增和自减运算符

? 1.3.4 优先级? 1.3.5 取反

? 1.3.6 比较? 1.3.7 逻辑运算符

? 1.3.8 逻辑取反? 1.3.9 赋值运算符

? 1.3.10 转换和强制类型转换? 1.3.11 其他赋值运算符

? 1.4.1 表达式? 1.4.2 计算表达式

? 1.4.3 语句? 1.4.4 复合语句

? 1.5 程序流程? 1.5.1 if

? 1.5.2 条件表达式? 1.5.3 while

? 1.5.4 do-while? 1.5.5 for

? 1.5.6 break? 1.5.7 continue

? 1.5.8 逗号表达式? 1.5.9 switch

? 1.5.10 goto? 1.5.11 函数

? 1.5.12 声明函数? 1.6.1 包含文件

? 1.6.2 #define? 1.6.3 条件编译

? 1.7 printf? 1.8 使用gcc和gdb

? 1.9 小结? 1.10 练习

第2章 C变量

? 2.1 Objective-C程序的内存布局? 2.2 自动变量

? 2.3 外部变量? 2.4.1 auto

? 2.4.2 extern? 2.4.3 static

? 2.4.4 register? 2.4.5 const

? 2.4.6 volatile? 2.5.1 自动变量的作用域? 2.5.2 复合语句和作用域? 2.5.3 外部变量的作用域? 2.6 动态分配? 2.7 小结

? 2.8 练习

第3章

? 3.1 面向对象编程? 3.1.1 类和实例

? 3.1.2 方法? 3.1.3 封装

? 3.1.4 继承? 3.1.5 多态

? 3.1.6 面向对象语言的主要特点是什么? 3.2 Objective-C简介

? 3.2.1 定义类? 3.2.2 类名作为类型

? 3.2.3 消息(调用方法)? 3.2.4 类对象和对象创建

? 3.2.5 内存管理? 3.3.1 运行时

? 3.3.2 名称? 3.3.3 消息表达式

? 3.3.4 编译器指令? 3.3.5 直接量字符串

? 3.3.6 Objective-C关键字? 3.3.7 Cocoa数字类型

? 3.4 小结

第1章 C,Objective-C的基础

1.1 C程序的结构

第一部分 Objective-C简介

本书第一部分是Objective-C的简介。Objective-C是C语言的扩展,因此,本部分的前两章对C进行了回顾。回顾了C之后,介绍了面向对象编程的概念,以及这些概念在Objective-C中是如何实现的。第4章将带你一行一行地分析一个简单的Objective-C程序。

第1章 C,Objective-C的基础

第2章 C变量

第3章 面向对象编程简介

第4章 第一个Objective-C程序

第1章 C,Objective-C的基础

Objective-C是C的一个扩展。本书大部分的内容都关注Objective-C对C添加了什么。但是,要使用Objective-C编程,必须知道C的基础知识。在Objective-C中进行两数相加、在代码中加入一条注释,或者使用一条if语句等之类的常规操作时,其方式都是与C相同的。Objective-C非对象的部分不是与C相似,或者与C类似,它简直就是C。目前的Objective-C 2.0基于C的C99标准。

本章是回顾C的两章中的第1章。注意,回顾并不是对C的完整介绍,而只是介绍了该语言的基本部分。像位运算符、类型转换的细节、Unicode字符、带有参数的宏,以及其他

神奇之处并没有提及。回顾部分专门用来帮助那些曾经学过C语言的人们进行回忆,或者作为那些擅长从环境中捡起一门新语言的人的快速参考。第2章继续回顾C,并且介绍了声明变量、变量作用域及C将变量放置在内存中何处等话题。如果你是一位资深C/C++程序员,可以跳过这一章(然而,回顾一下也没什么坏处。在编写本章的过程中也学到了一些东西)。如果你从另一种类似C的语言(例如Java或C#)转向Objective-C,你至少应该快速浏览一下这些内容。如果你只有一种脚本语言的编程经验,或者你完全是一名初学者,那么,你会发现在阅读本书的同时阅读一本关于C语言的书会很有帮助。

注意 建议每个人都阅读本书的第2章。以我的经验,很多人应该熟悉这些内容,但实际上他们并不是很熟悉。

关于C语言的书有很多。最早的Kernighan和Ritchie所著的《The C Programming Language》一书,仍然是其中最好的一本。大多数人学习C语言都是使用的这本书。关于C 语法,或者说如果你要探究C语言的某些边边角角,那么,可以参考Harbison和Steele

所著的《C: A Reference Manual》一书。

考虑一下,你是如何开始学习一门新的自然语言的。要做的第一件事情是不是看看这门语言是如何写的:它使用哪些字母(或象形文字)?它是从左向右读、从右向左读,还是从上向下读?然后,开始学习一些单词。你至少需要从一个较小的词汇表起步。建立起自己的词汇表后,就可以开始用单词组建短语,开始把短语组合为完整的句子。最终,可以把句子组合为完整的段落。

对C语言的回顾大致按照同样的过程。1.1节看看一个C程序的结构,C代码是什么格式,以及命名各种实体的规则和惯例。接下来的小节,介绍变量和运算符,它们大致类似于自然语言中的名词和动词;然后,看看它们如何组合为较长的表达式和句子。随后的小节,介绍控制语句。最后一个小节介绍C预处理器,它允许我们在将源文件发送给编译器之前对其进行一些编程式的编辑,该小节还介绍了printf函数,它用于字符输出。

1.1 C程序的结构

本章首先介绍C程序结构的基本知识,例如main函数、格式化问题、注释、名称和命名惯例,以及文件类型等。

1.1.1 main函数

1.1.1 main函数

所有的C程序都有一个main函数。在操作系统载入一个C程序之后,程序从main函数的第一行代码开始执行。main函数的标准形式如下:

1.int main(int argc, const char * argv[])

2.{

3. // The code that does the work goes here

4. return 0;

5.}

main函数的主要特征是:

第一行中的int表示main向操作系统以返回代码的形式返回一个整数值。

名称main是必需的。

第一行剩下的部分是从操作系统传递给程序的命令行参数。main接受argc那么多个参数,并且作为字符串存储于argv数组中。这部分目前不是很重要,可以忽略。

所有的可执行代码放在一对花括号中。

return 0;行表明了0作为返回代码传递回操作系统。在UNIX系统中(包括Mac OS X 和iOS),为0的返回代码表示“没有出错”,而其他的任何值则意味着一个某种类型的错误。

如果你对于处理命令行参数或向OS返回一个错误代码不感兴趣(例如,在做后面几章的练习时),可以使用main的一种简化形式:

1.int main( void )

2.{

3.

4.}

void表明main函数的这个版本不接受参数。在没有一条显式的return语句时,意味着返回值为0。

1.1.2 格式化

1.1.2 格式化

C语句由一个分号结束。空白字符(空格、制表符和换行符)是分隔名称和关键字所必需的。C忽略任何额外的空白:缩进和任何额外的空白对于编译的可执行代码都没有影响;可以自由地使用它们以使代码更具可读性。一条语句可以扩展到多行,例如,如下的3条语句是等价的:

1.distance = rate*time;

2.

3.distance = rate * time;

4.

5.distance =

6.rate *

7. time;

1.1.3 注释

1.1.3 注释

注释是程序员的启示性表示。编译器会忽略注释。C支持两种形式的注释:

跟在两个斜杠(//)后面,直到该行结束之前的所有内容,都是一条注释。例如:

1.// This is a comment.

在/*和*/之间的任何内容,也是一条注释:

1./* This is the other style of comment */

这种类型的注释可以跨越多行。例如:

1./* This is

2. a longer

3. comment. */

在编程的过程中,它也可以用来临时性地“注释掉”代码段。这种样式的注释不能像如下这样嵌套:

1./* /* WRONG - won't compile */ */

然而,下面的形式是合法的:

1./*

2. // OK - can nest end of line comment

3.*/

1.1.4 变量和函数名

1.1.4 变量和函数名

C中的变量和函数名,由字母、数字和下划线( _ )字符组成:

第一个字符必须是一个下划线或一个字母。

C名称是区分大小写的,例如,bandersnatch和Bandersnatch是不同的名称。

在一个名称的中间不能有任何空白。

下面是一些合法的名称:

1.j

2.taxesForYear2010

3.bananas_per_bunch

4.bananasPerBunch

如下的名称是不合法的:

1.2010YearTaxes

2.rock&roll

3.bananas per bunch

1.1.5 命名惯例

1.1.5 命名惯例

为了方便自己及必须阅读代码的任何人,应该为变量和函数使用具有描述性的名称。bpb 很容易录入,但是,当你一年后返回来看时,它会让你感到疑惑;bananas_per_bunch则是一目了然的。很多普通的C程序在较长的变量和函数名中使用下划线来分隔开单词:

1.apples_per_basket

Objective-C程序员通常为变量使用CamelCase(骆驼命名法)名称。CamelCase名称使用首字母大写来表示名称中后续单词的开始:

1.applesPerBasket

以一个下划线开始的名称,通常用作私有的变量和函数,或者是供内部使用的名称:

1._privateVariable

2._leaveMeAlone

然而,这是一个惯例;C没有强制性的机制来保证变量或函数是私有的。

1.1.6 文件

1.1.6 文件

普通C程序的代码放入到一个或多个以.c为扩展名的文件中:

1.ACProgram.c

注意 Mac OS X文件名不区分大小写。文件系统将会记住你用来命名一个文件的大小写,但是,它将myfile.c、MYFILE.c和MyFile.c当做相同的文件名。

使用Objective-C对象(本书从第3章开始介绍对象)的代码,放置在以.m为扩展名的一个或多个文件中:

1.AnObjectiveCProgram.m

注意 由于C是Objective-C的一个子集,因此将一个普通C程序放入到一个.m文件中也没有问题。

针对定义和实现Objective-C类(将在第3章介绍)的文件,还有一些命名惯例。但是,C对于扩展名之前的名称部分,没有任何正式的规则。将包含一个记账程序的代码的文件命名如下,会很傻,但是合法:

1.MyFlightToRio.m

C程序还使用头文件。头文件通常包含了由很多.c和.m文件共同使用的各种定义。通过使用一个#include或#import预处理器指令,可以将这些文件合并到其他文件中(参见本章稍后的1.6节)。头文件有一个.h扩展名,如下所示:

1.AHeaderFile.h

注意 这一话题超出了本书的讨论范围,但是,在同一个程序中混合使用Objective-C和C++代码是可能的。结果叫做Objective-C++。Objective-C++代码必须放置在一个扩展名为.mm的文件中:

1.AnObjectiveCPlusPlusProgram.mm

1.2.1 整数类型

1.2 变量

变量是程序中用于某些内存字节的名称。当为一个变量赋一个值时,实际所做的事情是,将该值存储到这些字节中。计算机语言中的变量,就像自然语言中的名词。它们表示程序的问题空间中的项或量。

C要求通过声明变量来告诉编译器你将要使用的任何变量。变量声明的形式如下:

1.variabletype name;

C允许一次声明多个变量:

1.variabletype name1, name2, name3;

变量声明导致编译器为这些变量保留存储空间(内存)。变量的值就是其内存位置的内容。第2章将更详细地介绍变量声明。将介绍变量声明放置于何处,变量创建于内存中的何处,以及不同类型的变量的生命期。

1.2.1 整数类型

C提供了如下类型来保存整数:char、short、int、long和long long。表1-1给出了32位和64位Mac OS X可执行程序中的整数类型的字节大小(附录C将介绍32位和64位的可执行程序)。

表1-1 整数类型的大小

char类型之所以叫做char,是因为它最初是用来保存字符的;但是,它经常用作一个8位的整数类型。

整数类型可以声明为unsigned的:

1.unsigned char a;

2.unsigned short b;

3.unsigned int c;

4.unsigned long d;

5.unsigned long long e;

当unsigned单独使用时,表示unsigned int:

1.unsigned a; // a is an unsigned int

无符号变量的位模式总是解释为一个正的数字。如果你给一个无符号变量赋一个负的值,结果是很大的正数。这几乎总是一个错误。

1.2.2 浮点类型

1.2.2 浮点类型

C的浮点类型有:float、double和long double。浮点类型的字节大小在32位和64位可执行文件中都是相同的:

1.float aFloat; // floats are 4 bytes

2.double aDouble; // doubles are 8 bytes

3.long double aLongDouble; // long doubles are 16 bytes

浮点值总是有符号的。

1.2.3 真值

1.2.3 真值

普通的表达式经常用到真值。计算为零值的表达式认为是假,而计算为非零值的表达式认为是真。

_Bool、bool和BOOL

C的早期版本没有定义布尔类型。普通表达式使用(并且现在仍然使用)布尔值(真值)。正如上文所述,计算为零值的表达式认为是假,而计算为非零值的表达式认为是真。大多数的C代码仍然这样编写。

当前的C标准C99,引入了一个_Bool类型。_Bool是一个整数类型,它只有两个允许的值,即0和1。赋给_Bool任何非零值,将得到1:

1._Bool b = 35; // b is now 1

如果在源代码文件中包含了文件stdbool.h,可以使用bool作为_Bool的一个别名,而且可以使用布尔常量true和false(true和false只不过分别定义为1和0)。

1.#include

2.bool b = true;

我们很少会在Objective-C代码中看到_Bool或bool,这是因为Objective-C定义了自己的Boolean类型BOOL。第3章将介绍BOOL。

1.2.4 初始化

1.2.4 初始化

变量可以在声明的时候初始化:

1.int a = 9;

2.

3.int b = 2*4;

4.

5.float c = 3.14159;

6.

7.char d = 'a';

包含在单引号中的单个字符是一个字符常量。它在数字上等于该字符的编码值。这里,变量d的数字值为97,它是字符a的ASCII值。

1.2.5 指针

1.2.5 指针

指针是其值等于一个内存地址的一个变量。它“指向”内存中的一个位置。可以通过在声明中,在变量名前面放置一个*,将一个变量声明为一个指针变量。如下的代码把pointerVar声明为指向内存中保存一个整数的位置的一个变量:

1.int *pointerVar;

一元运算符&(“取址”运算符)用来获取一个变量的地址,以便将其存储到一个指针变量中。如下的代码将指针变量b的值设置为整数变量a的地址:

1. 1 int a = 9;

2. 2

3. 3 int *b;

4. 4

5. 5 b = &a;

现在,我们一行一行地解释这个例子:

第1行将a声明为一个int变量。编译器拿出4个字节来存储a,并且将其初始化为值9。

第3行将b声明为一个指向int的指针。

第5行使用&运算符来获取a的地址,然后,将a的地址赋值给b。

图1-1说明了这个过程(假设编译器分配的起始地址为1048880)。图中的箭头表示了指向的概念。

一元运算符*(叫做“求值”或“解引用”运算符),通过使用指向一个内存位置的指针变量,来设置或获取该内存位置的内容。可以这样来看,把表达式*pointerVar看做是一个别名,即针对存储在pointerVar的内容中的任何内存位置的另一个名称。表达式

*pointerVar可以用来设置或获取该内存位置的内容。

在如下的代码中,将b设置为a的地址,因此,*b变成了a的别名:

1.int a;

2.int c;

3.int *b;

4.a = 9;

5.b = &a;

6.c = *b; // c is now 9

7.*b = 10; // a is now 10

指针在C中用来引用动态分配的内存(参见第2章)。指针也用来避免将大块的内存,例如数组和结构(将在本章稍后介绍),从一个程序的一部分复制到另一部分。例如,可以把指向结构的一个指针传递给函数,而不是把一个较大的结构传递给函数。函数随后使用指针来访问结构。随后我们还会看到,Objective-C对象也总是通过指针来引用。

通用指针

声明为void的指针变量,是一个通用指针。

1.void *genericPointer;

可以将通用指针设置为任何变量类型的地址:

1.int a = 9;

2.void *genericPointer;

3.genericPointer = &a;

然而,试图从一个通用指针获取一个值,将导致一个错误发生,因为编译器没办法知道如何解释通用指针所表示的地址的字节:

1.int a = 9;

2.int b;

3.void *genericPointer;

4.genericPointer = &a;

5.b = *genericPointer; // WRONG - won't compile

要通过void*指针获取一个值,必须将其转换为指向一个已知类型的指针:

1.int a = 9;

2.int b;

3.void *genericPointer;

4.genericPointer = &a;

5.b = *((int*) genericPointer) ; // OK - b is now 9

强制转换运算符(int*)迫使编译器将genericPointer看做是指向一个整数的指针(参见本章后面的1.3.10节)。

C不会检查一个指针变量是否指向内存的一个有效区域。在C编程中错误地使用指针,可能会比其他错误原因引发更多的程序崩溃。

1.2.6 数组

1.2.6 数组

C数组的声明,首先是数组的类型和数组名,然后是一个方括号,方括号中是数组元素的数目:

1.int a[100];

通过将元素的索引放到数组名称后面的[ ]中,可以访问数组的单个元素:

1.a[6] = 9;

索引是基于0的。在前面的例子中,合法的索引在0~99。访问C数组时系统不会在两端进行边界检查。C允许做如下的事情:

1.int a[100];

2.a[200] = 25;

3.a[-100] = 30;

使用超出数组边界的一个索引,将会导致访问属于其他变量的无用内存,这要么导致程序崩溃,要么导致数据毁坏。利用缺乏检查的缺陷,是恶意软件的惯用招数之一。

方括号表示法只是指针算术的一种不错的语法。不带有数组方括号的数组名称,是一个指向数组开始处的指针变量。如下两行代码是完全等价的:

1.a[6] = 9;

2.*(a + 6) = 9;

当要编译的表达式使用指针算术时,编译器会考虑指针所指向的类型的大小。如果a

是一个int数组,表达式*(a+2)指的是距离数组a开始处8个字节(两个int)地址处的一个4字节内存(这是一个int类型的大小)内容。然而,如果a是一个char数组,表达式*(a+2)指的是距离数组a开始处两个字节(两个char)地址处的一个1字节内存(这是一个char类型的大小)内容。

多维数组

多维数组声明如下:

1.int b[4][10];

多维数组按照行顺序地存储。这里,b[0][0]是第一个元素,b[0][1]是第二个元素,

b[1][0]是第11个元素。

使用指针表示法为:

1.b[i][j]

可以写作:

1.*(b + i*10 + j)

1.2.7 字符串

1.2.7 字符串

C字符串是字节(char类型)的一维数组,以一个0字节终结。C中的常量字符串,通过把字符串的字符放置在双引号("")之间来编写:

1."A constant string"

当编译器在内存中创建一个常量字符串时,它自动在末尾添加0字节。但是,如果声明了一个用来保存字符串的char数组,在确定需要多少空间时,则必须记住包含0字节。如下的代码行将常量字符串“Hello”的5个字符及其最终的0字节复制到数组aString中:

1.char aString[6] = "Hello";

与任何其他的数组一样,表示字符串的数组也不进行边界检查。溢出程序输入所使用的字符串缓冲区,是黑客惯用的招数。

char*类型的变量,可以用一个常量字符串来初始化。可以将这样的一个变量设置为指向一个不同的字符串,但是,不能够使用它来修改一个常量字符串:

1.char *aString = "Hello";

2.

3.aString = "World";

4.

5.aString[4] = 'q'; // WRONG - causes a crash

第1行把aString指向常量字符串“Hello”。第2行将aString修改为指向常量字符串“World”。第3行引发程序崩溃,因为将常量字符串存储到了一段受保护的、只读的内存中。

1.2.8 结构

1.2.8 结构

结构将相关变量组成了一个集合,以便能够将这些变量作为一个单独的实体引用。如下是一个结构声明的例子:

1.struct dailyTemperatures

2. {

3. float high;

4. float low;

5. int year;

6. int dayOfYear;

7.};

结构中的单个变量叫做成员变量,或者简单地称为变量。跟在关键字struct后面的名称,是结构的标签。结构标签标识该结构。它可以用来声明类型为该结构的变量:

1.struct dailyTemperatures today;

2.

3.struct dailyTemperatures *todayPtr;

在前面的例子中,today是一个dailyTemperatures结构,而todayPtr是一个指向dailyTemperatures结构的指针。

点运算符(.)用来通过一个结构变量访问结构中的单个成员。指针运算符(->)用来从一个变量访问结构成员,而该变量是指向结构的一个指针:

1.todayPtr = &today;

2.

3.today.high = 68.0;

4.

5.todayPtr->high = 68.0;

后两条语句完成同样的事情。

结构可以用其他的结构作为成员。前面的例子可以写成如下所示的形式:

1.struct hiLow

2.{

3. float high;

4. float low;

5.};

6.

7.struct dailyTemperatures

8.{

9. struct hiLow tempExtremes;

10. int year;

11. int dayOfYear;

12.};

那么,设置今天的最高温度可以用如下形式表示:

1.struct dailyTemperatures today;

2.today.tempExtremes.high = 68.0;

注意 编译器会很容易地在一个结构中插入补充,从而迫使结构成员按照内存中的一个特定边界来对齐。不要通过计算结构成员从结构开始处的偏移量来访问它们,或者做依赖于结构的二进制布局的任何其他事情。

1.2.9 typedef

1.2.9 typedef

typedef声明提供了一种方法来为变量类型创建别名:

1.typedef float Temperature;

现在,Temperature可以用来声明变量,就好像它是一个内建的类型一样:

1.Temperature high, low;

typedef只是为变量类型提供了一个替代名称。这里,high和low都仍然是浮点数。关键字typedef在C代码中往往用作一个动词,就像在“Temperature is typedef誨 to float”中一样。

1.2.10 枚举常量

1.2.10 枚举常量

enum语句允许定义一组整数常量:

1.enum woodwind { oboe, flute, clarinet, bassoon };

该语句的结果是:oboe、flute、clarinet和bassoon,常量值分别为0、1、2和3。

如果不想按照从0开始的顺序,可以自己给常量赋值。任何没有被指定值的常量,其值都比前一个常量大1,如:

1.enum woodwind { oboe=100, flute=150, clarinet, bassoon=200 };

上面的语句将oboe、flute、clarinet和bassoon的值分别指定为100、150、151和200。

关键字enum后面的名称叫做枚举标签。枚举标签是可选的。枚举标签也可以用来声明变量:

1.enum woodwind soloist;

2.soloist = oboe;

枚举对于定义多个常量很有用,并且有助于增强代码的可读性,但是,它们不是明确的类型,并且没有得到编译器太多的支持。声明enum woodwind soloist;表明你希望soloist 应该限制为oboe、flute、clarinet或bassoon之一,但是,遗憾的是,编译器没有做任何事情来强化这一限制。编译器认为soloist是一个int,并且,它允许将任何整数值赋给soloist,而不会产生一条警告:

1.enum woodwind { oboe, flute, clarinet, bassoon };

2.enum woodwind soloist;

3.soloist = 5280; // No complaint from the compiler!

注意 枚举常量占据与变量名称相同的名称空间。所以不能让一个变量和枚举常量具有相同的名称。

1.3.1 算术运算符

1.3 运算符

运算符就像是动词。它们引发对变量的运算。

1.3.1 算术运算符

C中有+、-、*和/这些常用的二元运算符,它们分别用于加、减、乘和除运算。

注意 如果除法运算符(/)的两个操作数都是整数类型,则C执行整数除法。整数除法会把除法的结果进行截取。例如,7 / 3的值是2。

1.3.2 余数运算符

1.3.2 余数运算符

余数运算符或模运算符(%)计算一个整数除法的余数。例如,下面的表达式的结果是1:

1.int a = 7;

2.int b = 3;

3.int c = a%b; // c is now 1

余数运算符的操作数必须都是整数类型。

1.3.3 自增和自减运算符

1.3.3 自增和自减运算符

C为自增和自减变量提供了运算符:

1.a++;

2.

3.++a;

两行都给a的值增加1。然而,当将两个表达式用作一个更大的表达式的一部分时,它们之间就有区别了。前缀版++a,会在任何计算发生之前增加a的值。在表达式中使用的是增加以后的a值。而后缀版a++则是在其他计算进行之后才增加其值。在表达式中,使用的

是其最初的值。这可以通过如下的示例来说明:

1.int a = 9;

2.int b;

3.b = a++; // postfix increment

4.

5.int c = 9;

6.int d;

7.d = ++c; // prefix increment

自增运算符的后缀版,是在将变量的初始值用于表达式的计算之后,才将该变量增加1。当示例中的代码执行完以后,b的值是9,而a的值是10。自增运算符的前缀版,是在该变量值用于表达式计算之前就增加它。因此在这个示例中,c和d的值都是10。

自减运算符a--和--a以类似的方式工作。

使用该运算符的前缀版和后缀版之间的差别的代码,很可能令除编写者之外的人产生混淆。

1.3.4 优先级

1.3.4 优先级

如下的表达式是等于18还是22:

1. 2 *7 + 4

答案似乎是含糊的,因为这取决于是先进行加法还是先进行乘法运算。C通过指定一条规则,即在执行加法和减法之前,先执行乘法和除法,从而解决了二义性问题;因此,该表达式的值是18。从技术性上来说,就是乘法和除法拥有比加法和减法更高的优先级。

如果需要先进行加法运算,可以使用圆括号指定:

1. 2 * (7 + 4)

编译器将会尊重你的请求,先执行加法,然后再执行乘法。

注意 C为其所有的运算符定义了一个复杂的优先级表(参见

http://en.wikipedia. org/ wiki/Order_of_operations)。使用圆括号来指定

想要的运算顺序,比努力记住运算符优先级要容易得多。

1.3.5 取反

1.3.5 取反

一元减法符号(-)把一个算术值取反:

1.int a = 9;

2.int b;

3.b = -a; // b is now -9

1.3.6 比较

1.3.6 比较

C提供了用于比较的运算符。比较的值是一个真值。如下的表达式,如果为真,则取值为1;如果为假,则取值为0。

1. a > b // true, if a is greater than b

2.

3. a

4.

5. a >= b // true, if a is greater than or equal to b

6.

7. a <= b // true, if a is less than or equal to b

8.

9.a == b // true, if a is equal to b

10.

11. a != b // true, if a is not equal to b

1.3.7 逻辑运算符

1.3.7 逻辑运算符

AND和OR逻辑运算符的形式如下:

1.expression1 && expression2 // Logical AND operator

2.

3.expression1 || expression2 // Logical OR operator

Windows下IOS开发环境搭建

IOS环境搭建与开发入门 一、注册APPLE ID 1.在苹果官网上下载iTunes。 官方下载地址:https://www.doczj.com/doc/5814975315.html,/itunes/download/ 2.安装iTunes. 3.启动iTunes,在导航栏选择iTunes store 4.将显示页拉至最下面,选择管理->更改国家或地区 5.选择切换到美国(United States) 6.选择找到FREE APPS(免费软件)

点击FREE APP 接着出现一个对话框,点击“创建新账户”。 双击选择Continue

填写注册信息和相关问题,选择Continue。 7.如果您没有美国信用卡,就只有选择“NONE”。 8.填写美国地址的时候注意,输入美国地址的时候不要乱填,否则很容易被打回来。可用下面的免税地址: (注册时,地址、城市都填Fairbanks,州选择AK-Alaska[这个在最上面],[zipcode]邮编99701,电话907-6284234) 9.所有信息确认后,需要到邮箱去收取确认激活邮件,确认后才算正式的申请成功。 二、注册开发者账号 1.输入网址:https://www.doczj.com/doc/5814975315.html,/programs/ios/ 2.选择Enroll Now.

3.选择Continue. 4.如果之前没有注册过APPLE ID,则可以选择第一项,同时注册一个APPLE ID,这里选择第二项使用已经的APPLE ID 进行注册。

5.选择注册为个人。 6.登陆APPLE ID。 7.填写个人信息,注意名字需为信用卡上的英文名(拼音)。 8.选择IOS Developer Program. 9.确认个人信息。

一看就懂的Android APP开发入门教程

工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android程序HelloAndroid,po出来分享给其他也想学习android开发的朋友,这么傻瓜的Android开发入门文章,有一点开发基础的应该都能看懂。 一、准备工作 主要以我自己的开发环境为例,下载安装JDK和Android SDK,假如你没有现成的IDE,你可以直接下载SDK完整包,里面包含了Eclipse,如果有IDE那么你可以滚动到下面选择U SE AN EXISTING IDE,然后安装SDK,如果你的SDK在安装时找不到JDK目录,你可以在系统环境变量里添加JAVA_HOME变量,路径为你的JDK目录,我的IDE是IntelliJ IDEA,都装好以后开始配置IDE增加SDK支持。 首先,打开Android SDK Manager把Android 4.0以上版本的未安装的都打勾装上,根据你个人实际情况,如果你只打算用自己的手机测试,那就把你机子系统一样版本的SDK包装上,下载时间有点长。

然后打开IDE创建新项目,IDEA比较智能,如果你装好了SDK,新建项目里就会出现Andro id的Application Module,选择后右边Project SDK为空,点击New按钮,找到SDK目录确定,下拉列表就会列出已经安装的各个版本的SDK,选择自己需要的版本,如果是第一次设置,IDE会提醒你先设置JDK,根据提示找到JDK目录即可。

IOS开发基础知识

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 IOS 开发基础知识 1:ios 相册操作ALAssetsLibrary 知识点 aALAssetsLibrary 实例为我们提供了获取相册(照片app)中的图片和视频的功能。 在ios8 photos framework 代替了ALAssetsLibrary。 在使用ALAssetsLibrary 时,我们需要申明它的实例。 ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init]; b. 迭代获取相册ALAssetsGroup: - (void)enumerateGroupsWithTypes:(ALAssetsGroupType)types usingBlock:(ALAssetsLibraryGroupsEnumerationResultsBlock)enumerationBlock failureBlock:(ALAssetsLibraryAccessFailureBlock)failureBlockALASSetsGroupType 类型: ALAssetsGroupLibrary:从iTunes 来的相册内容(如本身自带的向日葵照片)。ALAssetsGroupAlbum:设备自身产生或从iTunes 同步来的照片,但是不包括照片 流跟分享流中的照片。(例如从各个软件中保存下来的图片) ALAssetsGroupEvent 相机接口事件产生的相册 ALAssetsGroupFaces 脸部相册(具体不清楚) ALAssetsGroupSavedPhotos 相机胶卷照片 ALAssetsGroupPhotoStream 照片流 ALAssetsGroupAll 除了ALoup setAssetsFilter:onlyPhotosFilter]; if ([group numberOfAssets] 0) { [self.imageGroup addObject:group]; } else { [self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO]; } };上面就是迭代AlAssetsGroup 的block。每迭代一次就把相应 的AlAssetsGroup 保存在一个可变的数组之中。AlAssetsGroup 中的一些属性表明了 这个相册的特征。比如:posterImage 相册的缩略图 numberOfAssets 相册中照片的数量 c:Asset 属性

如何开发iOS应用程序

如何开发iOS应用程序 开发iOS应用程序既有趣又回报丰厚,如果您是一位新手,自然想知道从哪里入手。本路 线图提供了iOS应用程序开发的绝佳起点。在Mac 电脑上,您可以创建在iPad、iPhone 和iPod touch 上运行的iOS应用程序。遵循本路线图以了解如何取得开发工具,理解主要概念及最佳实践,并学会查找更多信息。 继续遵循此路线图,您将使用到Xcode和iOS SDK(Apple 提供的开发工具)。您将了解Objective-C(驱动所有iOS应用程序和框架的程序设计语言)的编程基础知识,并将探索Cocoa Touch 框架。您将创建一个简单的iOS应用程序,并学会在设备上进行测试。最后,您还会学到如何将应用程序提交到App Store。 路线图中的每个页面,都介绍一个新主题,并链接到一篇或多篇有关该主题的简短文章。路线图只是提供基本的入门知识,最后一页“接下来做什么”包含您接下来应该阅读的文稿链接。完成了路线图,您就具备了进一步了解各个主题的能力,并且掌握到着手开发iOS应用程 序的知识、工具和技能。 如果您是Mac 开发者:您其实已经掌握了不少开发iOS应用程序的知识。可是,尽管iOS 和OS X 使用相同的开发工具和开发语言,两者仍然存在着一些重大的差异(您将在路线图的学习过程中发现这点)。有关这些平台差异的全面描述,请参阅iOS Technology Overview(iOS技术概述)中的“Migrating from Cocoa”(从Cocoa 迁移)。

设置 您在开发应用程序时,会使用到iOS软件开发套件(SDK) 以及Xcode,即Apple 的集成开发环境(IDE)。Xcode包括源代码编辑器、图形用户界面编辑器及其他许多功能,为您开发完美的iPhone、iPod touch 和iPad应用程序,提供了所需要的全部资源。大多数应用程序开发工具集中显示在一个窗口中,Xcode称之为工作区窗口。在此窗口内,您可以顺畅地从代码编写转换到代码调试,再到用户界面设计。iOS SDK 扩展了Xcode工具集,包含iOS专用的工具、编译器和框架。 开始之前: 1. 下载最新版本的Xcode。 在Mac 上打开Mac App Store应用程序,搜索Xcode,然后点按“免费”按钮下载Xcode。您下载的Xcode已包含iOS SDK。(Mac OS X v10.7 以及更高版本已经预装Mac App Store 应用程序。如果您使用的是较早版本的Mac OS X,则需要升级。) 您无需加入该计划也可编写应用程序并在iOS Simulator 中测试。但是,您只有加入该计划,才能在设备上测试与分发应用程序。加入该计划后,您还可以全权访问iOSDev Center 和iOS Provisioning Portal。如果您现在加入,就可以执行路线图中的所有操作步骤,包括在设备上测试应用程序。 马上开始 开发优秀的iOS应用程序,需要大量的学习和实践。不过,有了这些工具和iOS SDK,开发一个简单可用的程序并非难事。您的首个iOS应用程序教程,介绍了这些工具、基本设计模式和应用程序开发过程。通过这个教程,您将学习创建一个能接收用户文本输入并能将文本显示在屏幕上的应用程序。您还将学到如何在Mac 上的iOS Simulator 中运行这一程序。本教程中的简单步骤引入了一些简练实用的概念,将在今后的程序开发中不断地用到。

ios开发入门Xcode常用游戏开发框架模板

Xcode将iOS游戏开发模板分成了三组:Application、Framework&Library和Other。Application分组包含以下模板: ·Master—Detail Application:此模板是主从式应用程序的起点。提供了一个配置了导航控制器的可显示项目列表的用户界面,在iPad卜采用拆分视图显示列表。您可能不会选择此模板用于游戏开发。 ·OpenGL Game:此模板是基于OpenGL ES游戏的起点。提供了一个视图,可用丁.渲染OpenGL ES场景,还提供了一个计时器,用于在视图中实现动画。游戏开发人员经常使用OpenGL ES用于游戏开发,但使用OpenGL ES月:发游戏超H=j了本书的讨论范围。 ·Page.Based Application:此模板足使用页面视图控制器的个基本页面应用程序的起点。您通常刁i会选择此模板JI}j丁二游戏开发。 ·Single View Application:此模板足使用单一视图应用程序的起点。提供了一‘个管理视图的视图控制器,一‘个包含该视图的storyboard或nib文件。山丁|其简单易川,本书中的大部分游戏都将使用此模板。 ·Tabbed Application:此模板足使用标签栏应用程序的起点。提供了‘个配置了标签栏控制器的用户界面,以及与标签栏条目对应的视图控制器。通常4i会选择此模板用丁.游戏开发。 ·Utility Application:此模板是实用程序的起点。提供了一个主视图和一个替换视图。再iPhone 中,设置一个信息按钮,从主视图翻转替换为替换视图。在ipad中设置了一个信息按钮,以power的方式显示替换视图,通常不会选用此模板用于ios游戏开发。

苹果 iOS 移动应用开发新手入门

苹果 iOS 移动应用开发新手入门 马上着手开发 iOS 应用程序 开发iOS 应用程序既有趣又回报丰厚,如果您是一位新手,自然想知道从哪里入手。本路线图提供了iOS 应用程序开发的绝佳起点。在Mac 电脑上,您可以创建在iPad、iPhone 和iPod touch 上运行的iOS 应用程序。遵循本路线图以了解如何取得开发工具,理解主要概念及最佳实践,并学会查找更多信息。 继续遵循此路线图,您将使用到Xcode 和iOS SDK(Apple 提供的开发工具)。您将了解Objective-C(驱动所有iOS 应用程序和框架的程序设计语言)的编程基础知识,并将探索Cocoa Touch 框架。您将创建一个简单的iOS 应用程序,并学会在设备上进行测试。最后,您还会学到如何将应用程序提交到App Store。

设置 您在开发应用程序时,会使用到iOS 软件开发套件(SDK) 以及Xcode,即Apple 的集成开发环境(IDE)。Xcode 为开发完美的iPhone、iPod touch 和iPad 应用程序,提供了您所需要的一切。它包括源代码编辑器、图形用户界面编辑器和许多其他功能。大多数应用程序开发工具集中显示在一个窗口中,Xcode 称之为工作区窗口。在此窗口内,您可以顺畅地从代码编写转换到代码调试,再到用户界面设计。iOS SDK 扩展了Xcode 工具集,包含iOS 专用的工具、编译器和框架。 开始之前: 1.下载最新版本的Xcode。 在Mac 上打开Mac App Store应用程序,搜索Xcode,然后点按“免费”按钮下载Xcode。您下载的Xcode 已包含iOS SDK。(Mac OS X v10.7 以及更高版本已经预装Mac App Store 应用程序。如果您使用的是较早版本的Mac OS X,则需要升级。) 2.加入iOS Developer Program 成为Apple 开发者。 您无需加入该计划也可编写应用程序并在iOS Simulator 中测试。但是,您只有加入该计划,才能在设备上测试与分发应用程序。加入该计划后,您还可以全权访问iOS Dev Center 和iOS Provisioning Portal。如果您现在加入,就可以执行路线图中的所有操作步骤,包括在设备上测试应用程序。 马上开始 开发优秀的iOS 应用程序,需要大量的学习和实践。不过,有了这些工具和iOS SDK,开发一个简单可用的程序并非难事。“您的首个iOS 应用程序”教程,介绍了这些工具、基本设计模式和应用程序开发过程。通过这个教程,您将学习创建一个能接收用户文本输入并能将文本显示在屏幕上的应用程序。您还将学到如何在Mac 上的iOS Simulator 中运行

编程入门教程.doc

编程入门教程 编程入门教程由勤快学基础教程https://www.doczj.com/doc/5814975315.html,梳理的一本面向程序开发入门初学者的编程入门教程,是一个涵盖了游戏、PLC、VB、数控、JAVA、APP、Matlab、C语言、Shell、IOS、Android安卓等手机和PC编程的入门教程。 1.编程入门教程 1.1. 游戏编程入门 游戏编程入门适用于任何对C++语言有基本了解的读者阅读,适宜作为读者进入游戏开发领域的技术入门学习用书。 游戏编程入门介绍如何设计和构建自己的电脑游戏。游戏编程入门不是泛泛地介绍编程理论,而是引导读者开发一个“即插即用”的游戏引擎,可以增强和重用这个游戏引擎以开发各种游戏。书中包括了7个完整游戏的详尽解释以及示例代码,使读者准备好开始自己的游戏项目开发。如果读者喜爱玩游戏,那么只需在学习了如何开发它们之后,就可以玩上自己开发的游戏了。 光盘内容:Bloodshed Dev-C++开发环境;在游戏编程入门中开发的示例和游戏的完整源代码和可执行程序文件;C++语言和Windows编程的入门指导。 1.2. plc编程入门 可编程序控制器,英文称Programmable Controller,简称PC。但由于PC容易和个人计算机(Personal Computer)混淆,故人们仍习惯地用PLC作为可编程序控制器的缩写。它是一个以微处理器为核心的数字运算操作的电子系统装置,专为在工业现场应用而设计,它采用可编程序的存储器,用以在其内部存储执行逻辑运算、顺序控制、定时/计数和算术运算等操作指令,并通过数字式或模拟式的输入、输出接口,控制各种类型的机械或生产过程。PLC 是微机技术与传统的继电接触控制技术相结合的产物,它克服了继电接触控制系统中的机械触点的接线复杂、可靠性低、功耗高、通用性和灵活性差的缺点,充分利用了微处理器的优点,又照顾到现场电气操作维修人员的技能与习惯,特别是PLC的程序编制,不需要专门的计算机编程语言知识,而是采用了一套以继电器梯形图为基础的简单指令形式,使用户程序编制形象、直观、方便易学;调试与查错也都很方便。用户在购到所需的PLC后,只需按说明书的提示,做少量的接线和简易的用户程序编制工作,就可灵活方便地将PLC应用于生产实践。 1.3. 电脑编程入门 编辑程序让电脑执行的过程就叫编程很多软件都可以编程具有代表性的计算机语言有Java,BASIC C,C++,VB,VF,SQL,网页编程JSP,ASP,PHP ,软件是eclipse,Microsoft Visual

xcode全中文教程(iOS开发快速入门利器)

介绍 本教程向您演示如何创建一个简单的iPhone应用程序。本文不打算对iPhone目前可用的特性作全面介绍,而是介绍一些技术,让您对基础开发过程有初步了解。 如果您刚开始使用Cocoa Touch进行iPhone开发,则您需要阅读本文档。阅读之前,您需要大致了解计算机编程基础,尤其是要了解Objective-C。如未曾用过该语言,则至少应通读学习Objective-C:入门教材。 本文档不是为了创建一个优雅漂亮的应用程序,而是为了向您描述: 如何使用Xcode创建并管理一个工程 基础设计模式和iPhone开发的基本技术 Interface Builder使用入门 如何让应用程序响应来自标准用户接口控件的用户输入 另外,我们还在教程中指出其他一些文档。只有阅读这些文档,您才能充分理解iPhone开发的工具和技术。 重要:为了学习本教程,您需要安装iPhone SDK和开发者工具,它们位于iPhone开发中心。 文档描述的工具包含在iPhone SDK v3.0里面—请检查一下Xcode版本,它不能低于3.1.3。 文档的组织方式 本文档分为如下章节: “教程概述和设计模式” “创建您的工程” “添加一个视图控制器” “查看Nib文件” “配置视图” “实现视图控制器”

“排除疑难” “下一步做什么?” 下页 教程概述和设计模式 本章概述您将要创建的应用程序以及将会使用的设计模式。 教程概述 在学习过程中,您将创建一个很简单的应用程序。它含有一个文本字段,一个标签和一个按键。您可以把名字输入到文本字段中,再按下按键,这时标签的文本就会变成“Hello, !”:

IOS开发流程说明书

I O S 开发流程说明书 版本:V0.2

文档修订记录 *变化状态:A——增加,M——修改,D——删除,N——正式发布

文档审阅信息

目录 1 序言 (6) 1.1编写目的 (6) 1.2术语定义 (6) 1.3参考资料 (6) 2 关于IOS (6) 2.1 IOS介绍 (6) 2.2 IOS开发环境简述 (7) 3 创建项目 (9) 3.1 新建iOS项目 (9) 3.2 应用程序目录结构说明 (12) 3.3 应用程序初始结构概览 (14) 3.4 IOS应用程序的生命周期 (15) 4 代码入门(数据类型) (16) 4.1 基础数据类型 (17) 4.2 OC数据类型 (17) 4.2.1 NSNumber类和NSInterger (17) 4.2.2 NSString类型 (19) 4.2.3 NSArray类型 (19) 4.2.4 NSDictionary类型 (20) 4.2.5 NSDate类型 (20) 5 OC类的认识(成员变量和方法) (20) 5.1 类的声明 (21) 5.2 方法的定义 (24) 6 运行和调试 (24) 6.1 IOS模拟器 (25) 6.1.1 选择设备 (25) 6.1.2 模拟器自定义设置 (26)

6.1.3 存储屏幕快照 (27) 6.2 程序调试 (28) 6.3 NSLog (29)

1 序言 1.1编写目的 本说明书为IOS开发流程说明书,制定本说明书的目的是针对IOS开发技术进行宏观表述。以便后续的设计、开发、测试、验收等工作顺利进行。 适用对象: IOS开发人员 项目管理人员 产品开发人员 1.2术语定义 (1)真机 真机即所谓的iPhone手机或者ipad,是指具有IOS这个操作系统的手机,由苹果公司进行研制并销售,用户可以从appstroe上下载相关应用及游戏。 (2)IOS SDK IOS专属的软件开发工具包。 (3)Xcode IOS开发工具。 1.3参考资料 暂无。 2 关于IOS 2.1 IOS介绍 苹果IOS是由苹果公司开发的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等产品上。IOS与苹果的Mac OS X操作系

中文版IOS APP开发教程发布

中文版IOS APP开发教程发布 苹果更发布了中文版iOS APP开发教程《马上着手开发iOS APP应用》,以方便和吸引更多的中国开发者来开发iOS APP。 中文版开发教程主要包括5 个章节: 1、介绍和设置 2、马上开始 3、工具、程序设计语言和基本任务 4、框架、设计模式、用户界面设计、应用程序设计和App Store 5、查找信息和接下来做什么 现在开始开发iOS APP应用 开发iOS APP应用既有趣又回报丰厚,如果您是一位新手,自然想知道从哪里入手。本路线图提供了iOS APP应用开发的绝佳起点。在Mac 电脑上,您可以创建在iPad、iPhone 和iPod touch 上运行的iOS APP应用。遵循本路线图以了解如何取得开发工具,理解主要概念及最佳实践,并学会查找更多信息。 继续遵循此路线图,您将使用到Xcode 和iOS SDK(Apple 提供的开发工具)。您将了解Objective-C(驱动所有iOS APP应用和框架的程序设计语言)的编程基础知识,并将探索Cocoa Touch 框架。您将创建一个简单的iOS APP应用,并学会在设备上进行测试。最后,您还会学到如何将应用程序提交到App Store。 路线图中的每个页面,都介绍一个新主题,并链接到一篇或多篇有关该主题的简短文章。路线图只是提供基本的入门知识,最后一页“接下来做什么”包含您接下来应该阅读的文稿链接。完成了路线图,您就具备了进一步了解各个主题的能力,并且掌握到着手开发iOS APP应用的知识、工具和技能。

如果您是Mac 开发者:您其实已经掌握了不少开发iOS APP应用的知识。可是,尽管iOS 和OS X 使用相同的开发工具和开发语言,两者仍然存在着一些重大的差异(您将在路线图的学习过程中发现这点)。有关这些平台差异的全面描述,请参阅iOS Technology Overview(iOS 技术概述)中的“Migrating from Cocoa”(从Cocoa 迁移)。 设置 您在开发应用程序时,会使用到iOS 软件开发套件(SDK) 以及Xcode,即Apple 的集成开发环境(IDE)。Xcode 包括源代码编辑器、图形用户界面编辑器及其他许多功能,为您开发完美的iPhone、iPod touch 和iPad 应用程序,提供了所需要的全部资源。大多数应用程序开发工具集中显示在一个窗口中,Xcode 称之为工作区窗口。在此窗口内,您可以顺畅地从代码编写转换到代码调试,再到用户界面设计。iOS SDK 扩展了Xcode 工具集,包含iOS 专用的工具、编译器和框架。 开始之前: 下载最新版本的Xcode。 在Mac 上打开Mac App Store 应用程序,搜索Xcode,然后点按“免费”按钮下载Xcode。您下载的Xcode 已包含iOS SDK。(Mac OS X v10.7 以及更高版本已经预装Mac App Store 应用程序。如果您使用的是较早版本的Mac OS X,则需要升级。) 加入iOS Developer Program 成为Apple 开发者。 您无需加入该计划也可编写应用程序并在iOS Simulator 中测试。但是,您只有加入该计划,才能在设备上测试与分发应用程序。加入该计划后,您还可以全权访问iOS Dev Center 和iOS Provisioning Portal。如果您现在加入,就可以执行路线图中的所

iOS软件开发入门

对于广大开发人员来说,无需纠结于开发的程序是否能在不同的硬件设备中运行,只要是iOS程序就可以在支持iOS系统的设备中运行。不同设备之间的差异,只是表现在屏幕大小上而己。在当前的iOS开发项目中,主要是开发两类程序:iPhone程序和iPad程序,这两者的屏幕大小不一样。 iOS是一款功能强大的智能手机操作系统,被广泛地应用于iPhone、iPad和iTouch等苹果公司的系列产品中。iOS通过这些移动设备,向用户展示了一个多点触摸、可始终在线、视频以及具有众多内置传感器的界面。 iPhone是一个集合照相、个人数码助理、媒体播放器以及无线通信设备的掌上智能手机。 iPad是苹果公司于2010年发布的一款平板电脑的名称,定位介于苹果的智能手机iPhone 和笔记本电脑产品之间,通体只有四个按键,与iPhone布局一样,提供了浏览互联网、收发电子邮件、观看电子书、播放音频和视频等功能。 为了提高开发iOS软件开发程序的效率,除了可以使用Xcode集成开发工具之外,还可以使用第三方提供的框架,这些框架为我们提供了完整的项目解决方案,是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合,以便使研发程序变得更容易。在OSX下的Mac 操作系统中,大约存在80个框架,这螳框架可以用来开发应用程序,处理Mac的Address Book 结构、刻制CD、播放DVD、使用QuickTime播放电影、播放歌曲等。 开发iOS游戏或应用,首先需要到苹果公司的官方网站申淆iOS开发权限,理论上只能在苹果公司的Mac计算机上丌发。 iOS游戏可以发布到苹果公布到的App Store中,这是发布iOS游戏的唯一合法途径。 开发iOS应用或游戏主要是使用Objective—C语言,这是苹果公司专有的计算机语言,语法比较特别,好在使用Unity开发iOS游戏并不需要对Objective-C有非常深入的了解。

APP开发入门教程

APP开发入门教程 这篇文章主要介绍了Android APP开发入门教程,从SDK下载、开发环境搭建、代码编写、APP打包等步骤一一讲解,非常简明的一个Android APP开发入门教 程,需要的朋友可以参考下 作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android程序HelloAndroid,po出来分享给其他也想学习android开发的朋友,这么傻瓜的Android开发入门文章,有一点开发基础的应该都能看懂。 一、准备工作 主要以我自己的开发环境为例,下载安装JDK和Android SDK,假如你没有现成的IDE,你可以直接下载SDK完整包,里面包含了Eclipse,如果有IDE那么你可以滚动到下面选择USE AN EXISTING IDE,然后安装SDK,如果你的SDK在安装时找不到JDK目录,你可以在系统环境变量里添加JA V A_HOME变量,路径为你的JDK目录,我的IDE是IntelliJ IDEA,都装好以后开始配置IDE增加SDK支持。 首先,打开Android SDK Manager把Android 4.0以上版本的未安装的都打勾装上,根据你个人实际情况,如果你只打算用自己的手机测试,那就把你机子系统一样版本的SDK 包装上,下载时间有点长。

然后打开IDE创建新项目,IDEA比较智能,如果你装好了SDK,新建项目里就会出现Android 的Application Module,选择后右边Project SDK为空,点击New按钮,找到SDK目录确定,下拉列表就会列出已经安装的各个版本的SDK,选择自己需要的版本,如果是第一次设置,IDE会提醒你先设置JDK,根据提示找到JDK目录即可。

Android APP开发入门教程_新手必学

Android APP开发入门教程 工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android程序HelloAndroid,po出来分享给其他也想学习android开发的朋友,这么傻瓜的Android开发入门文章,有一点开发基础的应该都能看懂。 当然如果你是一个初学者,你如果每天晚上有时间,你可以加企鹅(444—513_089)晚上免费和安卓开发经验丰富的架构师一起学习安卓,并获取之前的高清视频和工具以及源码。 一、准备工作 主要以我自己的开发环境为例,下载安装JDK和Android SDK,假如你没有现成的IDE,你可以直接下载SDK完整包,里面包含了Eclipse,如果有IDE那么你可以滚动到下面选择USE AN EXISTING IDE,然后安装SDK,如果你的SDK在安装时找不到JDK目录,你可以在系统环境变量里添加JA V A_HOME变量,路径为你的JDK目录,我的IDE是IntelliJ IDEA,都装好以后开始配置IDE增加SDK 支持。 首先,打开Android SDK Manager把Android 4.0以上版本的未安装的都打勾装上,根据你个人实际情况,如果你只打算用自己的手机测试,那就把你机子系统一样版本的SDK包装上,下载时间有点长。

然后打开IDE创建新项目,IDEA比较智能,如果你装好了SDK,新建项目里就会出现Android的Application Module,选择后右边Project SDK为空,点击New按钮,找到SDK目录确定,下拉列表就会列出已经安装的各个版本的SDK,选择自己需要的版本,如果是第一次设置,IDE会提醒你先设置JDK,根据提示找到JDK目录 即可。

ios入门(一般)

《iOS(一般)》试卷 得分 一、单选题(每题2分,共计30分) 1.缩放图片经常使用的手势是()() A、UITapGestureRecognizer,点按手势 B、UIPinchGestureRecognizer,捏合手势 C、UIRotationGestureRecognizer,旋转手势 D、UISwipeGestureRecognizer,轻扫手势 2.如果要进入编辑模式,需要调用()方法实现。() A、setEditing:animated B、tableView:editingStyleForRowAtIndexPath: C、tableView:commmitEditingStyle:forRowAtIndexPath: D、tableView:canMoveRowAtIndexPath: 3.下列选项中,不能够接收并处理事件的是()() A、UIApplication B、UIViewController C、UIView D、NSObject 4.下列选项中,用于设置当前显示的是哪一页的是() A、currentPage B、pageIndicatorTintColor C、numberOfPages D、currentPageIndicatorTintColor 5.下列选项中,用于表示文本字符串的字段类型是()() A、REAL B、INTEGER C、BLOB D、TEXT 6.下列方法中,用于为表视图添加索引的是()() A、tableView:editingStyleForRowAtIndexPath: B、sectionIndexTitlesForTableView C、tableView:commmitEditingStyle:forRowAtIndexPath: D、tableView:moveRowAtIndexPath:toIndexPath: 7.下列选项中,哪个属性可以设置视图的位置和尺寸()() A、bounds B、center C、transform D、tag 8.如果数据库不再使用,可通过()函数来关闭。() 总分题号一二三四五题分 得分

iOS 应用开发入门指南,中文教程

iOS 应用开发入门指南,中文教程 课时:开发IOS前言 摘要: 创造iOS应用既有乐趣又有回报,如果你正在初学开发,可能会为从何着手而感到困惑。这份路线图为iOS 应用开发入门提供了一个完美的开端。 创造iOS应用既有乐趣又有回报,如果你正在初学开发,可能会为从何着手而感到困惑。 这份路线图为iOS应用开发入门提供了一个完美的开端。在你的Mac 电脑上便可以创造 出iOS应用,并在iPad、iPhone 和iPod touch 上安装使用。跟随这份路线图的指引,你会知道从哪里获取你需要的工具,明白主要概念并进行有效的实践,以及今后如何获取更多信息。 当你在使用这份路线图时,你需要的开发工具是由苹果公司提供的Xcode以及iOS SDK。你将学到如何使用Objective-C,这个为所有iOS应用和框架提供动力的语言进行基础编程,并会对Cocoa Touch 框架有个初步探索。你将会编写一个简单的iOS应用,以及学会如 何在真实的设备上进行测试。最终你将学会如何把自己的应用提交到App Store。 本路线图的每个页面都将介绍一个新话题,并且有一个或多个关于该话题的文章链接。本路线图会给你提供非常广泛的知识,以便帮助你起步。而最后一页“从这里启程”包含了你接下来应该深入了解的文档链接。在你读完本路线图之后,你就可以深入学习任何一个特定领域的内容了。你将拥有开发iOS应用所需的知识、工具以及技能!

课时:ios安装工具 摘要: 要开发一个应用,就必须用到iOS软件开发套件(SDK)以及苹果公司的集成式开发环境(IDE)Xcode。要创建一款优秀的iPhone、iPod touch 和iPad 应用,Xcode 要开发一个应用,就必须用到iOS软件开发套件(SDK)以及苹果公司的集成式开发环境(IDE)Xcode。要创建一款优秀的iPhone、iPod touch 和iPad 应用,Xcode可以满足你所有的需要。其内容有源代码编辑器、图形用户界面编辑器以及其他多种功能,从可定制构建到源代码仓库管理等。Xcode采用单窗口的形式,并将这种形式称为“工作区窗口”,你所需要的大部分数据都在这个工作区窗口里面。熟悉Xcode以后,你就能轻松地在编写代码、除错调试和界面设计中变换,而无需来回切换窗口。iOS SDK 则能够扩展Xcode工具组,内容包括创建iOS应用专门的工具、编译器和框架等。 作为第一步,你需要: 1. 下载最新版本的Xcode。 在Mac 电脑上打开Mac App Store,搜索Xcode,然后点按“免费”开始下载。当你下载Xcode时,iOS SDK 已被包含在内。(Mac App Store 是预装在Mac OS X 10.7 或更新的版本中的。如果你在使用老版本的Mac OS X 则需要先升级操作系统。) 2. 加入iOS开发者计划,成为苹果开发者 如果只是编写并在模拟器中测试应用,你不必加入开发者计划。但当你需要在真实设备上测试乃至发布应用时,你就需要加入开发者计划了。加入计划后你就可以访问iOS开发中心和iOS Provisioning Portal 的全部资源了。当然,如果你现在就加入计划,则可以完全跟随本路线图中的所有步骤,包括在自己的设备上测试应用。 课时:正式投入学习ios应用 摘要:

Web App开发入门

WebApp与Native App有何区别呢? Native App: 1、开发成本非常大。一般使用的开发语言为JAVA、C++、Objective-C。 2、更新体验较差、同时也比较麻烦。每一次发布新的版本,都需要做版本打包,且需要用户手动更新(有些应用程序即使不需要用户手动更新,但是也需要有一个恶心的提示)。 3、非常酷。因为native app可以调用IOS中的UI控件以UI方法,它可以实现WebApp 无法实现的一些非常酷的交互效果。 4、Native app是被Apple认可的。Native app可以被Apple认可为一款可信任的独立软件,可以放在Apple Stroe出售,但是Web app却不行。 Web App: 1、开发成本较低。使用web开发技术就可以轻松的完成web app的开发。 2、升级较简单。升级不需要通知用户,在服务端更新文件即可,用户完全没有感觉。 3、维护比较轻松。和一般的web一样,维护比较简单,它其实就是一个站点。 Webapp说白了就是一个针对Iphone、Android优化后的web站点,它使用的技术无非就是HTML或HTML5、CSS3、JavaScript,服务端技术JAVA、PHP、ASP。 当然,因为这些高端智能手机(Iphone、Android)的内置浏览器都是基于webkit内核的,所以在开发WEBAPP时,多数都是使用HTML5和CSS3技术做UI布局。当使用HTML5和CSS3l做UI时,若还是遵循着一般web开发中使用HTML4和CSS2那样的开发方式的话,这也就失去了WEBAPP的本质意义了,且有些效果也无法实现的,所以在此又回到了我们的主题–webapp的布局方式和技术。 在此所说的移动平台前端开发是指针对高端智能手机(如Iphone、Android)做站点适配也就是WebApp,并非是针对普通手机开发Wap 2.0,所以在阅读本篇文章以前,你需要对webkit内核的浏览器有一定的了解,你需要对HTML5和CSS3有一定的了解。如果你已经对此有所了解,那现在就开始往下阅读吧…… 1、首先我们来看看webkit内核中的一些私有的meta标签,这些meta标签在开发webapp时起到非常重要的作用

Windows下Ios开发环境搭建及基本开发操作

Ios开发环境搭建及基 本开发操作 目录 1、虚拟机按装 (3) 2、按装系统 (3) 3、FirstAPP (15) 4、页面跳转 (21) 1、虚拟机按装 1下载虚拟机VMware_workstation_10.0.4 2下载mac os 破解补丁VMware Workstation 10 unlock fo osx 下载地址:/975180 3安装虚拟机,过程很简单,一直下一步就可以,千万千万记住,只能安装在默认目录下,unlock补丁只能识别默认目录。 4然后就是打vm mac OS补丁,解压后找到unlock-all-v120------windows------install.cmd,右键选择管理员运行。 2、按装系统 苹果的系统很烦人找不到旧版的xocde可以用,xcode最新版本需要的系统为mac os 由于没有找到mac os ,懒人版什么的实在是不能用所以我用的是mac os 10.8版的先按装之后再升级最高版本。 首先下载mac os 10.8官方正式版,记住一定要正式版,懒人版的缺少文件虚拟机是无法按装的。好吧,那么问题来了,怎么区分这两个正式版和懒人版呢,正式版的压缩包中InstallMacOSX.pkg文件夹下包含一个InstallESD.dmg的包。 这个dmg是什么呢为何它如此重要呢?它就是我们的系统按装包。 用转化工具anytoiso将dmg包转化为iso镜像文件。我们就可以在虚拟机上按装mac os 了 下面我们就开始按装mac os : 打开虚拟机新建一个虚拟机 mac os 10.8以上最低内存大小为2G。 虚拟机有独立的ip地址方便虚拟机跟本机之间的通讯,虚拟机建立之后也可以配置此项

iOS开发UI篇—Button基础

iOS开发UI篇—Button基础 一、简单说明 一般情况下,点击某个控件后,会做出相应反应的都是按钮 按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置二、按钮的三种状态 normal(普通状态) 默认情况(Default) 对应的枚举常量:UIControlStateNormal highlighted(高亮状态) 按钮被按下去的时候(手指还未松开) 对应的枚举常量:UIControlStateHighlighted disabled(失效状态,不可用状态) 如果enabled属性为NO,就是处于disable状态,代表按钮不可以被点击 对应的枚举常量:UIControlStateDisabled 三、注意点 (1)从Xcode5开始,图片资源都放到Images.xcassets中进行管理,可以使用拖拽的方式添加项目中用到的图片到Images.xcassets中 (2)若干多个控件共用一段代码,通常使用tag。 四、代码示例 (1) 1#import"LFViewController.h" 2 3@interface LFViewController () 4 5 @property (weak, nonatomic) IBOutlet UIButton *headImageView; 6 7@end 8 9@implementation LFViewController 10

11// 在OC中,绝大多数的控件的监听方法的第一个参数就是控件本身 12//- (IBAction)left:(UIButton *)button { 13// 14// NSLog(@"----"); 15//} 16 - (IBAction)move 17{ 18// 通过frame修改head的位置 19// 在OC中,不允许直接修改“对象”的“结构体属性”的“成员” 20// 允许修改“对象”的“结构体属性” 21// 1. 取出结构体属性 22 CGRect rect = self.headImageView.frame; 23// 2. 修改结构体成员 24 rect.origin.y -= 20; 25// 3. 设置对象的结构体属性 26 self.headImageView.frame = rect; 27 } (2) 1#import"LFViewController.h" 2 3/** 4使用git 5 6 1. 创建项目时,勾选git 7 2. 开发告一段落后,选择"Source Control""Commit",并编写注释 8*/ 9 10 11// 枚举类型实质上就是一个整数,作用就是用来替代魔法数字 12// 枚举类型中,指定了第一个整数之后,后面的数字会递增 13 typedef enum 14{ 15 kMovingDirTop = 10, 16 kMovingDirBottom, 17 kMovingDirLeft, 18 kMovingDirRight, 19} kMovingDir; 20 21#define kMovingDelta 50 22 23@interface LFViewController () 24 25 @property (weak, nonatomic) IBOutlet UIButton *headImageView; 26 27@end 28 29@implementation LFViewController

相关主题
文本预览
相关文档 最新文档