技术开发 频道

教程:Objective-C语法快速参考

  三、其他的一些东西

  其实这些本站之前的文章有所提及,这里再详细解释一下。

  1、 id:

  Objective-C有一种比较特殊的数据类型是id。你可以把它理解为“随便”。

  在Objective-C里,一切东西都是指针形式保存,你获取到的就是这个对象在内存的位置。那么id就是你知道这个位置,但是不知道里面是啥的时候的写法。

  2、 同一个数组可以保存不同的对象:

  比如一个数组NSArray,这种数组里面可以保存各种不同的对象,比如这个数组里:

  myArray <—-|

  0: (float) 234.33f

  1: @”我是个好人”

  2: (NSImage *)

  3: @”我真的是好人”

  这是一个由4个东西组成的数组,这个数组包括一个浮点数,两个字符串和一个图片。

  3、BOOL,YES,NO:

  你可以认为YES表示C#或者Java里的true,NO表示false。而实际上YES是1,NO是0,BOOL本身就是个char。

  4、IBOutlet、IBAction是啥玩意,总能看到。

  这两个东西其实在语法中没有太大的作用。如果你希望在Interface Builder中能看到这个控件对象,那么在定义的时候前面加上IBOutlet,在IB里就能看到这个对象的outlet,如果你希望在Interface Builder里控制某个对象执行某些动作,就在方法前面加上(IBAction)。

  而这两个东西实际上和void是一样的。

  5、nil。

  Objective-C里的NULL(空)就这么写,表示空指针。

  6、为什么是@”字符串”而不是”字符串”

  前面加上@符号,编译器在编译的时候会在程序中给你留出位置,这样才能保证这个字符串不会丢失。反正记住,如果你要想把某些字符串写死在程序里,就要用@”字符串”,如果忘了用@,程序应该会出错。

  superzhou大侠指正:

  6、为什么是@”字符串”而不是”字符串”

  ”字符串”是C的字符串,@”"是把C的字符串转成NSString的一个简写.

  在需要NSString的地方才需要这个转化,例如NSLog里面.

  在需要C string的地方,还是用”字符串”的.

  另外,@”"这个转换是不支持中文的.例如NSLog(@”字符串”); 是一定输出不了中文的.

0
相关文章