- 5
- 0
- 约6.77万字
- 约 53页
- 2016-10-09 发布于贵州
- 举报
Object-C经典入门教程-修正版
Object-C 入门教程
大纲
开始吧下载这篇教学
设定环境
前言
编译 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 main( int argc, const char *argv[] ) {
( printf( hell
您可能关注的文档
- LED大屏幕故障修及解决方法.doc
- leson1 中的对外贸易《外刊经贸知识选读》重点_串讲_课文翻译.doc
- Linux 2..19.x 内核编译配置选项简介.doc
- Lingo软件在解数学优化问题的使用技巧.doc
- Linux 2__19_x 内核编译配置选项简介.doc
- Linux Epll介绍和程序实例.doc
- Linux crntab 详细介绍及执行php.docx
- linux kcnfig详解及语法.docx
- Linux ph5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置.doc
- linux shll及常用命令介绍.doc
- Scania卡車和巴士P、G、R、K、N、F系列產品資訊說明書.pdf
- NFS-CHINA 方德桌面操作系统 V5.0-G230 产品白皮书.pdf
- ALLBRIGHT 法律意见书 关于蜂巢能源科技股份有限公司首次公开发行股票并在科创板上市的补充法律意见书(二).pdf
- Chunjiang County Si Zhou North Medium-Duty Irrigation Area Rebuild and Water Saving Project Environmental Impact Report (Draft)说明书用户手册.pdf
- 山东机床通用机械工业协会 工业机器人操作调整工赛项技术工作文件.pdf
- 院科两级诊疗质量监督管理制度.docx
- 加油站安全检维修管理制度.docx
- 全屋定制家居整装销售团队业绩PK提成薪酬考核机制方案.docx
- 中学各种安全管理制度.docx
- 幼儿园设施设备管理制度.docx
原创力文档

文档评论(0)