《Object-C 经典入门教程》.doc
文本预览下载声明
Object-C 入门教程
分类: Sipamp;asterisk2009-05-04 16:34 16409人阅读 评论(2) 收藏 举报
大纲
开始吧下载这篇教学
设定环境
前言
编译 hello world
创建 Classes@interface
@implementation
把它们凑在一起
详细说明...多重参数
建构子(Constructors)
访问权限
Class level access
异常情况(Exceptions)处理
继承、多型(Inheritance, Polymorphism)以及其他面向对象功能id 型别
继承(Inheritance)
动态识别(Dynamic types)
Categories
Posing
Protocols
内存管理Retain and Release(保留与释放)
Dealloc
Autorelease Pool
Foundation Framework ClassesNSArray
NSDictionary
优点与缺点
更多信息
开始吧
下载这篇教学
所有这篇初学者指南的原始码都可以由 objc.tar.gz 下载。这篇教学中的许多范例都是由 Steve Kochan 在 Programming in Objective-C. 一书中撰写。如果你想得到更多详细信息及范例,请直接参考该书。这个网站上登载的所有范例皆经过他的允许,所以请勿复制转载。
设定环境
Linux/FreeBSD: 安装 GNUStep为了编译 GNUstep 应用程序,必须先执行位于/usr/GNUstep/System/Makefiles/GNUstep.sh 的 GNUstep.sh 这个档案。这个路径取决于你的系统环境,有些是在 /usr, some /usr/lib,有些是/usr/local。如果你的 shell 是以 csh/tcsh 为基础的 shell,则应该改用 GNUStep.csh。建议把这个指令放在 .bashrc 或 .cshrc 中。
Mac OS X: 安装 XCode
Windows NT 5.X: 安装 cygwin 或 mingw,然后安装 GNUStep
前言
这篇教学假设你已经有一些基本的 C 语言知识,包括 C 数据型别、什么是函式、什么是回传值、关于指针的知识以及基本的 C 语言内存管理。如果您没有这些背景知识,我非常建议你读一读 KR 的书:The C Programming Language(译注:台湾出版书名为 C 程序语言第二版)这是 C 语言的设计者所写的书。
Objective-C,是 C 的衍生语言,继承了所有 C 语言的特性。是有一些例外,但是它们不是继承于 C 的语言特性本身。
nil:在 C/C++ 你或许曾使用过 NULL,而在 Objective-C 中则是 nil。不同之处是你可以传递讯息给 nil(例如 [nil message];),这是完全合法的,然而你却不能对 NULL 如法炮制。
BOOL:C 没有正式的布尔型别,而在 Objective-C 中也不是「真的」有。它是包含在 Foundation classes(基本类别库)中(即 import NSObject.h;nil 也是包括在这个头文件内)。BOOL 在 Objective-C 中有两种型态:YES 或 NO,而不是 TRUE 或 FALSE。
#import vs #include:就如同你在 hello world 范例中看到的,我们使用了#import。#import 由 gcc 编译程序支援。我并不建议使用 #include,#import基本上跟 .h 档头尾的 #ifndef #define #endif 相同。许多程序员们都同意,使用这些东西这是十分愚蠢的。无论如何,使用 #import 就对了。这样不但可以避免麻烦,而且万一有一天 gcc 把它拿掉了,将会有足够的 Objective-C 程序员可以坚持保留它或是将它放回来。偷偷告诉你,Apple 在它们官方的程序代码中也使用了 #import。所以万一有一天这种事真的发生,不难预料 Apple 将会提供一个支持 #import 的 gcc 分支版本。
在 Objective-C 中, method 及 message 这两个字是可以互换的。不过messages 拥有特别的特性,一个 message 可以动态的转送给另一个对象。在Objective-C 中,呼叫对象上的一个讯息并不一定表示对象真的会实作这个讯息,而是对象知道如何以某种方式去实作它,或是转送给知道如何实作的对象。
编译 hello world
hello.m
§ #import stdio.h
§
§ int mai
显示全部