Iphone开发基础篇(一)-ObjectC之Hello ObjectC
来源:互联网 发布:照片分类的软件 编辑:程序博客网 时间:2024/05/04 15:36
前言与展望
说起iphone开发,必然要先说说iphone了,也就是苹果手机,总体来说,苹果手机的出现带动了一系列的IT行业的迅猛增长,在2007年6月29日苹果公司首发iPhone,在当年9月10日iPhone就突破了100万台,苹果公司股价涨至180美元,由于苹果手机硬件和系统几乎完美的结合,给了用户非常舒适的操作感,导致了苹果手机的疯狂热卖.从3GS爆发,到现在的4S一发不可收拾。
在iphone应用迅猛发展的同时一大批的软件开发者把方向指向了iphone开发,而开发所用的语言-Objective-c在这个背景下也成了炙手可热的语言之一,在最新的世界编程语言排行榜中,从09年的一望无际,迅速提升到了排行榜的第5名,已然加入了开发语言的领头军之列.Java,c,c++,c#,object c.
开发环境
win7 64 +VMWare 7.1 + MAC OS 10.6.3
xcode 4.3.2
IOS SDK 4.1
面向 对象的C语言
提及面向对象的语言,大多数Windows下的开发者会首先想到的是C++,C#或者Java。但是,如果你首先想到的是Objective-C,那么你应该是一位Mac OS下的开发者,这个现代计算机系统中,最多应用Objective-C的Apple公司Mac OS X。
Object-C和C++
Object-C是在C语言的基础上,吸收了Smalltalk的面向对象成分创造出的,这与大多数以Java为基础的面向对象语言非常的不同。
而且,与其他面向对象语言隐藏类在内存上的构造不同的是,Object-C用C语言来实现类,也就是说,和现代面向对象的思维方式相反,不是在语言中重新引进面向对象的元素,而是借助设计模式,在C语言中,不追加新元素的前提下实现面向对象的思想。举例来说,C++或者Java语言本身中就包含有类这个面向对象的概念,更通俗的说法是class这个关键字就是语言的一个组成部分,而在Object-C中,类的定义要放到头文件中进行,其本质上就是一个用typedef隐藏过的构造体。所以,Object-C和C语言有很高的亲和性,这会使熟悉Java的开发者非常难以接受,然而对熟悉C语言和设计模式的开发者,却是一个好机会。
Object-C的编译环境
如果系统是Mac OS X的话,安装附属的开发环境后立刻就能开始使用Objective-C 。而Linux系统下的GCC或者专门应用于Windows的GCC也能编译Objective-C。
新的预处理命令
Objective-C是C语言的扩张,C语言是Objective-C的子集,所以C语言不做任何修改就能在Objective-C环境下运行。更准确的说,Objective-C不是C语言本身的扩张,而是对编译器的扩张,编译器最终会将Objective-C翻译成C语言,而两者编译的结果代码也会是完全一样。在Objective-C中新追加的关键字,也不过是在头文件中用#define或者typedef的重新定义而已。
所以,为了正确运行Objective-C,必须首先引进特定的头文件,Objective-C中新引进的关键字和类型,都定义在foundation/foundation.h这个头文件中。
引用头文件的方式,在Object-C中增加了#import这个预处理命令。#import除了不会重复引进已经存在的文件之外(重复引用在C语言中是一个令人头疼的问题),用法和功能都和#include 一样。
#import <头文件>#import "头文件"
如果你仍然坚持使用#include来引进头文件的话,请不要忘了处理重复引用的问题。
另外,和以往的C语言一样,为了使用printf()等标准函数,还需要引用stdio.h头文件,还需要说明的是,Objective-C源程序文件的扩展名不是.c而是.m。
#import <foundation/foundation.h>int main(int argc, const char * argv[]) { NSLog(@"Hello Object-C!");
return (0);}
从上面的程序可以看出,Objective-C和C语言几乎完全一样,事实上Objective-C不是与C语言类似,而是和C语言具有完全的互换性,或者说本质上就是C语言。
注释方式上,除了可以使用C语言的/* */之外,Objective-C又增加了 //这种单行的注释方式。
- Iphone开发基础篇(一)-ObjectC之Hello ObjectC
- Iphone开发基础篇(二)-ObjectC之面向对象
- Iphone开发基础篇(三)-ObjectC之继承
- Iphone开发基础篇(八)-ObjectC之Xcode快捷键
- Iphone开发基础篇(十)-ObjectC之对象初始化
- Iphone开发基础篇(十二)-ObjectC之协议
- Iphone开发基础篇(十四)-ObjectC之谓词NSPredicate
- Iphone开发基础篇(四)-ObjectC之多态
- Iphone开发基础篇(五)-ObjectC之内存管理
- Iphone开发基础篇(十一)-ObjectC之类别
- Iphone开发基础篇(十三)-ObjectC之键/值编码(KVC)
- Iphone开发基础篇(十五)-ObjectC之键/值观察(KVO)
- Iphone开发基础篇(六)-ObjectC之Property,assign,retain,copy等关键字
- Iphone开发基础篇(七)-ObjectC之@property与@synthesize的用法
- Iphone开发基础篇(九)-ObjectC之Foundation Kit教程NSString\NSMutableString等数据类型
- Iphone开发基础篇(十二)-ObjectC之文件加载与保存
- 【IPHONE开发-OBJECTC入门学习】基本数据类型
- 【IPHONE开发-OBJECTC入门学习】NSUserDefaults使用
- 手机芯片中的AP与BP
- Code First :使用Entity. Framework编程(3)
- POJ 3468 A Simple Problem with Integers(线段树、lazy思想)
- 产生一个int 数组,长度为100,并向其中随时插入1-100,并且不能重复
- Android本地应用程序应用方式介绍
- Iphone开发基础篇(一)-ObjectC之Hello ObjectC
- Linux内核通知链notifier
- 数组排序
- ConvertUtils.register的作用!
- Razor视图引擎浅析之二
- 游戏王千金囊开发实录六—— 试卷库
- 学习笔记(1):C程序设计(第四版)谭浩强著_第一章~第二章
- git 使用(ssh key创建和github使用)
- Code First :使用Entity. Framework编程(1)