技术开发 频道

iPhone开发:Objective-C语法入门

  【IT168技术】Objective-C是Mac软件开发领域最主要的开发语言。假如我们对面向对象的思维已经C语言都很熟悉的话,对于我们学习Objective-C将会非常有用。假如我们对C语言还不熟悉的话,那我们需要学习一下C语言。

  方法调用(Calling Methods)

  为了能够尽快上手,我们先来看一些简单的例子。Objective-C语法里面基本的方法调用是这样的:

  [object method];

  [
object methodWithInput:input];

 

  对象的方法可以返回值:

  output = [object methodWithOutput];

  output
= [object methodWithInputAndOutput:input];

 

  我们也可以在类里面调用如何创建对象的方法。下面的这个例子里面,我们调用了NSString类的string方法:

  id myObject = [NSString string];

  id的类型意味着myObject这个变量可以指向任意类型的变量。当我们编译这个应用程序的时候,并不知道他实现的真实的类和方法。

  在这个例子里面,很明显这个对象的类型应该是NSString,所以我们可以改一下他的类型:

  NSString* myString = [NSString string];

  现在myString就是一个NSString类型的变量。这个时候假如我们试图使用一个NSString没有实现的方法时,编译器就会警告我们。

  一定要注意在对象类型的右边有一个星号。所有的Objective-C对象变量都是指针类型的。id类型已经预先被定义成一个指针类型了。所以我们不需要再加星号。

  嵌套消息调用(Nested Messages)

  在许多编程语言里面嵌套消息,或者嵌套函数看起来就像这样:

  function1 ( function2() );

  function2的返回值被传递给function1当输入参数。在Objective-C里面,嵌套消息调用就像这样:

  [NSString stringWithFormat:[prefs format]];

  我们应该尽量避免在一行代码里面嵌套调用超过两个。因为这样的话,代码的可读性就不太好。

  多参输入的方法(Multi-Input Methods)

  多个输入参数的方法。在Objective-C里面,一个方法名可以被分割成几段。在头文件里面,就应该这样子来定义一个多输入参数的方法:

  -(BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;

  我们这样来调用它:

  BOOL result = [myData writeToFile:@"/tmp/log.txt" atomically:NO];

  参数不一定要给它命名。在运行期系统里面这个方法真实的名字叫writeToFile:atomically:。

0
相关文章