A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 书籍教程 > 程序语言 > 手机系统开发 > Objective-C FAQ 中文版
Objective-C FAQ 中文版

Objective-C FAQ 中文版

  • 软件大小:428 KB
  • 软件语言:简体中文
  • 更新时间:2011-08-18
  • 软件类型:国产软件 / 手机系统开发
  • 运行环境:PDF
  • 软件授权:免费软件
  • 官方主页:http://
  • 软件等级 :
  • 软件厂商:ivy
立即高速安全下载
  • 介绍说明
  • 下载地址
  • 精品推荐
  • 相关软件
  • 网友评论


Objective-C FAQ 中文版
翻译者: jeff_yecn
mail:jeff_yecn@hotmail.com
Objective-C FAQ
:David
Stes ( stes@pandora.be)
表:2003年1月28日
翻:Jeff

* 目
* 1.
于本FAQ
+ 1.1 我在里可以找到本FAQ的最新版本
* 2. Objective-C
器指令
+ 2.1 Objective-C 源程序的文件后是什
+ 2.2 我怎用Stepstone器.m文件
+ 2.3 我怎用苹果器.m文件
+ 2.4 我怎用GNU
C器.m文件
+ 2.5 我怎用POC器.m文件
* 3. Objective-C
理器
+ 3.1 注句的法是什
+ 3.2 我怎包含根
+ 3.3 什是#import
+ 3.4
什要教我使用#import
* 4.
象的数据型(id)
+ 4.1 什是id
+ 4.2 self和super有什不同
+ 4.3 什是@defs(
)
* 5 消息器(SEL)
+ 5.1 什是SEL
+ 5.2 perform: 有什用
+ 5.3 我怎知道定method的SEL
* 6. 指(IMP)
+ 6.1 什是IMP
+ 6.2 怎通定的SEL得IMP
+ 6.3 怎通定的IMP送消息
+ 6.4 怎将IMP用于要返回双精度浮点数的method
+ 6.5
一个返回双精度浮点数的method,可以用perform:

* 7.
制象
+ 7.1 copy和deepcopy有什区
* 8. Objective-C和C++
+ 8.1 怎把一个C++接到Objective-C程序中
* 9. 消息+ 9.1 我怎生一个静的method
+ 9.2 我怎阻止一个象送某个消息
+ 9.3 如果我更改了一个method的,怎所有代行重新
* 10.
例和量
+ 10.1 如果我一个的例量行了改的,我需要所有代行
重新
* 11. Objective-C和X-Windows
+ 11.1 我怎把X Intrinsic文件包含到Objective-C文件中
* 12. Stepstone有
+ 12.1 我怎在中分配象
* 13. GNU Objective-C有
+ 13.1 什我会得到一个"浮点例外"
* 14. 苹果Objective-C有
+ 14.1 什是字符串常量的
+ 14.2 我怎把C++与Objective-C程序接
* 15. 可移植象器(POC)有
+ 15.1 量的法是什
+ 15.2 怎消息
+ 15.3 我怎把C++与Objective-C程序接
* 16.
籍和一材料
+ 16.1 Object-Oriented Programming : An Evolutionary Approach, 2nd Ed.
+ 16.2 An Introduction To Object-Oriented Programming, 2nd Ed.
+ 16.3 Objective-C : Object-Oriented Programming Techniques
+ 16.4 Applications of Object-Oriented Programming; C++ SmallTalk Actor
Objective-C Object PASCAL
1.
于本FAQ
1.1 我在里可以找到本FAQ的最新版本
它月会在
comp.lang.objective-c,comp.answers和news.answers.
同会档在ftp://rtfm.mit.edu/pub/faqs/computer-lang/Objective-C/faq.
2. Objective-C
器指令
2.1 Objective-C 源程序的文件后是什
施文件(implementation
file)的后是.m,文件的后是.h.Objective-C器通常也
接受.c作后,但是把些文件按照普通C言的模式行.
2.2 我怎用Stepstone器.m文件
objcc -c class.m
objcc -o class class.o
信息参http://www.stepstn.com
2.3 我怎用苹果器.m文件
cc -c class.m
cc -o class class.o
信息参http://www.apple.com
2.4 我怎用GNU
C器.m文件
gcc -c class.m
gcc -o class class.o -lobjc -lpthread
2.5 我怎用POC器.m文件
objc -c class.m
objc -o class class.o -lobjc -lpthread
3. Objective-C
理器
3.1 注句的法是什
Objective-C的理器通常支持注:
//
是BCPL格的注(有效到本行的末尾)

/*
是C格的注
*/
3.2 我怎包含根(include the root class)
stepstone和POC,文件可以包含:
GNU
cc和苹果cc,:
Stepstone器,根位于一个叫做runtime的目中,而POC器,位于一个叫
objcrt的目里.但由于含用的-I参数了理器,上述位置会被自搜索.
3.3 什是#import
是一个C理指令,避免同一个文件被多次包含.
#import
相当于:
#include
如果个.h文件能用下面的法保自己避免被重包含
#ifndef OBJECT H
...
#define OBJECT H
#endif
3.4
什要教我使用#import
由于有些人用不好的格来使用#import,GNU
Objective-C器会在使用#import
送一个信息.可以通-Wno-import来个警告信息.也可以通修改
器源代,置warn import量(在文件cccp.c)中.也可以想上一个那,把的代改使用#ifndef和#endif,使得的代可以行在所有器上.
4. 象的数据型(id)
4.1 什是id
它是Objective-C各象使用的一个通用的C数据型.例如,一个静函数,参数一
个象,返回也是一个象,可以声明:
static id myfunction(id argument) {...}
4.2 self和super有什不同
self是在method的中的一个量,它表示接收消息的象.super表示同的量,但要
求器使用其超(superclass,姑且翻,指当前所承的一系列)中的一个
method.
如果使用的,假copy
(from super) 是用超中copy个的法,那下面条
句是等价的:
myObject = [super copy];

myObject = [self copy (from super)]; //
4.3 什是@defs(
)
是一个器指令,作用是某一个的例的内部存.
typedef struct { @defs(MyClass) } *TMyClass;
定了一个叫TMyClass的C型,它的存与MyClass例是完全一的.
5 消息器(SEL)
5.1 什是SEL
是消息器的C型.它通常定唯一的字符串(method的名字,包括冒号).
但也并非所有的器都是定的.
5.2 perform: 有什用
perform: 是一个消息,它要求一个象送一条由它的消息器(SEL)指定的消息.
5.3 我怎知道定method的SEL
如果method的名字在已知道,使用@selector:
[myObject perform: @selector(close)];
如果是在行,可以通一个以消息名参数的行函数得消息器,例如:
SEL mySel = selUid(name); //Stepstone器
SEL mySel = sel getUid(name); //苹果器
SEL mySel = sel get any uid(name); //GNU
Objective-C器SEL mySel = selUid(name); //POC器
6. 指(IMP)
6.1 什是IMP
它是method的指的C型.一个指向Objective-C的method的函数的指.它被定
返回id型,并有个含参数,self和 cmd:
typedef id (*IMP) (id self, SEL cmd, ...);
6.2 怎通定的SEL得IMP
可以通送一个methodFor:
消息完成:
IMP myImp = [myObject methodFor: mySel];
6.3 怎通定的IMP送消息
通重函数指.下面的句是等价的:
[myObject myMessage];

IMP myImp = [myObject methodFor: @selector(myMessage)];
myImp(myObject, @selector(myMessage)];

[myObject perform: @selector(myMessage)];
6.4 怎将IMP用于要返回双精度浮点数的method
返回不是id而是象双精度浮点数的C型的method,需要将IMP函数指从返回id的
函数制成返回双精度浮点数的函数:
double aDouble = ((double (*) (id, SEL))myImp)(self, cmd);
6.5
一个返回双精度浮点数的method,可以用perform:

不行.perform:
method是用于送不含其它参数的返回id型的消息的.如果消息返回
id型,但有一个其它参数,使用perform:
with: .如果是任意参数数目和任意返回型的普
遍情况,使用methodFor: .
7.
制象
7.1 copy和deepcopy有什区
copy是象的字拷,与原有象共享指,可以被重以拷附加的内存.deepcopy
是建立一个不共享指的拷.一个象的deepcopy包括它的例量的拷,而一般的
制通常只包括第一的拷.
8. Objective-C和C++
8.1 怎把一个C++接到Objective-C程序中
可以有个:使用苹果器或POC.前者接受C++和Objective-C的混合法(称做
Objective-C++).后者把Objective-C代先成C,在用C++器中代行
.信息参器有的解答.(注:14,15章)
9. 消息
9.1 我怎生一个静的method
method在Objective-C中是以静函数的形式的.但得一个method的IMP(指
)的唯一方法只能是通行消息(通methodFor:
和friends),因于method
的文件来,函数本身是静的.
9.2 我怎阻止一个象送某个消息
不可以.如果的象能一个消息,那其他就可以送个消息.可以增加
一个外的sender参数来行,例如:
- mymethod: sender
{
if ([sender isKindOf: ...]) ...
}但仍然要求送方使用正的参数以行配合:
[anObject mymethod: self];
9.3 如果我更改了一个method的,怎所有代行重新
不,需要更改了代的文件本身重新就可以了.是送特定消息的文件是不
需要重新的,因Objective-C使用定.
10. 例和量
10.1 如果我一个的例量行了改的,我需要所有代行重新
需要那个,和它的所有子,和那些使用@defs或那个的例量行直接
的文件行重新.而言之,使用@defs来例量,或通子来例
量,破坏了Objective-C通常提供其他文件(那些不需要重新的文件)的封装.
11. Objective-C和X-Windows
11.1 我怎把X
Intrinsic文件包含到Objective-C文件中
避免Objective-C象和X11象的冲突,参考下面的代:
#include
#define Object XtObject
#include
#include
#undef Object
12. Stepstone有
12.1 我怎在中分配象
要在中分配"MyClass"的一个例:
MyClass aClass = [MyClass new];
13. GNU Objective-C有
13.1
什我会得到一个"浮点例外(floating
point exception)"
常在某些平台上生,并在ftp://ftp.ics.ele.tue.nl/pub/users/tiggr/objc/README.387中描述
.一个解决方案是在命令行添加-lieee参数,使得在行一个非法浮点操作不送信
息.DJGPP用可以参考http://www.delorie.com/djgpp/v2faq/.AIX用可以参考
http://world.std.com/ gsk/oc-rs6000-problems.html.某些情况下,也可以通升到更新
版本的GNU Objective-C行和/或器来解决个.
14. 苹果Objective-C有
14.1 什是字符串常量的
它是NXConstantString.
NXConstantString *myString = @ "my string";
14.2 我怎把C++与Objective-C程序接
c++ -c file.m
c++ file.o -lcpluslib -o myprogram
15. 可移植象器(POC,
Portable Object Compiler)有
15.1 量的法是什
把量列在例量的后面,并和例量一在一起,如下:
@implementation MyClass : Object { id ivar1; int ivar2; } : { id cvar1; }
@end
15.2 怎消息
通doesNotUnderstand:
来送sentTo:
消息.
- doesNotUnderstand : aMsg
{
return [aMsg sentTo: aProxy];
}
15.3 我怎把C++与Objective-C程序接
objc -c -cplus file.m
objc -cplus file.o -lcpluslib -o myprogram
16. 籍和一材料
16.1 Object-Oriented Programming : An Evolutionary Approach, 2nd Ed.
Brad Cox & Andy Novobilski, ISBN 0201548348.
16.2 An Introduction To Object-Oriented Programming, 2nd Ed.
Timothy Budd, ISBN 0201824191
16.3 Objective-C : Object-Oriented Programming Techniques
Pinson, Lewis J. / Wiener, Richard S., ISBN 0201508281
16.4 Applications of Object-Oriented Programming; C++ SmallTalk Actor Objective-C Object
PASCAL
Pinson, Lewis J. / Wiener, Richard S., ISBN 0201503697

 

下载地址

  • PC版

本地下载

相关软件

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

本类排名

本类推荐

装机必备

换一批

相关资讯

公众号