[Objective-C 基础学习]之一

    Objective-C是非常“实际”的语言。它使用一个用C写成、很小的运行库,只会令应用程序的大小增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。Objective-C写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。

    Objective-C,是 C 的衍生体,继承了所有 C 语言的特性。是有一些例外,但是它们不是继承于 C 的语言特性本身。Objective-C不支援运算子多载(它不支持ad-hoc多型)。Objective-C只容许对象继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。

 

   Nil

    在 C/C++ 你或许曾使用过 NULL,而在 Objective-C 中则是 nil。不同之处是你可以传递讯息给 nil(例如 [nil message];),这是完全合法的,然而你却不能对 NULL 如法炮制。

 

   BOOL

    C 没有正式的布尔类型,而在 Objective-C 中也不是「真的」有。它是包含在 Foundation classes(基本类别库)中(即 import NSObject.h;nil 也是包括在这个标头档内)。BOOL 在 Objective-C 中有两种型态:TRUE 或 FALSE。也可以用“AND”和“OR”来对表达式进行联合判断;如 (3 > 5 AND 5 < 9) OR ("a" == "a" AND "b" == "b");(4 == 4 AND 5 < 7) AND (7 == 7 AND 8 > 2)。

 

   #import vs #include

    import 由 gcc 编译器支援。我并不建议使用 #include,#import 基本上跟 .h 档头尾的 #ifndef #define #endif 相同。无论如何,使用 #import 就对了。这样不但可以避免麻烦,而且万一有一天 gcc 把它拿掉了,将会有足够的 Objective-C 程式员可以坚持保留它或是将它放回来。偷偷告诉你,Apple 在它们官方的程式码中也使用了 #import。所以万一有一天这种事真的发生,不难预料 Apple 将会提供一个支援 #import 的 gcc 分支版本。

 

   FOR LOOP

   循环的基本表达式:

for(initialization; logical test; update)
{ 
  <body> 
}
posted @ 2011-03-04 21:36  编豆芽的  阅读(177)  评论(0编辑  收藏  举报