欢迎来到天天文库
浏览记录
ID:14322167
大小:247.50 KB
页数:51页
时间:2018-07-27
《object-c 经典入门教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Object-C入门教程分类:Sip&asterisk2009-05-0416:3416409人阅读评论(2)收藏举报大纲o开始吧下载这篇教学o设定环境o前言o编译helloworldo创建Classes@interfaceo@implementationo把它们凑在一起o详细说明...多重参数o建构子(Constructors)o访问权限oClasslevelaccesso异常情况(Exceptions)处理o继承、多型(Inheritance,Polymorphism)以及其他面向对象功能id型别o继承(Inh
2、eritance)o动态识别(Dynamictypes)oCategoriesoPosingoProtocolso内存管理RetainandRelease(保留与释放)oDeallocoAutoreleasePooloFoundationFrameworkClassesNSArrayoNSDictionary·优点与缺点·更多信息开始吧下载这篇教学§所有这篇初学者指南的原始码都可以由objc.tar.gz下载。这篇教学中的许多范例都是由SteveKochan在ProgramminginObjective-C.一书中撰写。如
3、果你想得到更多详细信息及范例,请直接参考该书。这个网站上登载的所有范例皆经过他的允许,所以请勿复制转载。设定环境§Linux/FreeBSD:安装GNUStep为了编译GNUstep应用程序,必须先执行位于/usr/GNUstep/System/Makefiles/GNUstep.sh的GNUstep.sh这个档案。这个路径取决于你的系统环境,有些是在/usr,some/usr/lib,有些是/usr/local。如果你的shell是以csh/tcsh为基础的shell,则应该改用GNUStep.csh。建议把这个指令放在
4、.bashrc或.cshrc中。§MacOSX:安装XCode§WindowsNT5.X:安装cygwin或mingw,然后安装GNUStep前言§这篇教学假设你已经有一些基本的C语言知识,包括C数据型别、什么是函式、什么是回传值、关于指针的知识以及基本的C语言内存管理。如果您没有这些背景知识,我非常建议你读一读K&R的书:TheCProgrammingLanguage(译注:台湾出版书名为C程序语言第二版)这是C语言的设计者所写的书。§Objective-C,是C的衍生语言,继承了所有C语言的特性。是有一些例外,但是它们
5、不是继承于C的语言特性本身。§nil:在C/C++你或许曾使用过NULL,而在Objective-C中则是nil。不同之处是你可以传递讯息给nil(例如[nilmessage];),这是完全合法的,然而你却不能对NULL如法炮制。§BOOL:C没有正式的布尔型别,而在Objective-C中也不是「真的」有。它是包含在Foundationclasses(基本类别库)中(即importNSObject.h;nil也是包括在这个头文件内)。BOOL在Objective-C中有两种型态:YES或NO,而不是TRUE或FALSE。
6、§#importvs#include:就如同你在helloworld范例中看到的,我们使用了#import。#import由gcc编译程序支援。我并不建议使用#include,#import基本上跟.h档头尾的#ifndef#define#endif相同。许多程序员们都同意,使用这些东西这是十分愚蠢的。无论如何,使用#import就对了。这样不但可以避免麻烦,而且万一有一天gcc把它拿掉了,将会有足够的Objective-C程序员可以坚持保留它或是将它放回来。偷偷告诉你,Apple在它们官方的程序代码中也使用了#impor
7、t。所以万一有一天这种事真的发生,不难预料Apple将会提供一个支持#import的gcc分支版本。§在Objective-C中,method及message这两个字是可以互换的。不过messages拥有特别的特性,一个message可以动态的转送给另一个对象。在Objective-C中,呼叫对象上的一个讯息并不一定表示对象真的会实作这个讯息,而是对象知道如何以某种方式去实作它,或是转送给知道如何实作的对象。编译helloworld§hello.m§#import§§intmain(intargc,con
8、stchar*argv[]){§printf("helloworld/n");§return0;}·o§输出helloworld·o§在Objective-C中使用#import代替#include§Objective-C的预设扩展名是.m创建classes@interface§基于"Programmi
此文档下载收益归作者所有