当前位置: 首页 > 工具软件 > Objectivist-C > 使用案例 >

Objective-C 函数

乜栋
2023-12-01

函数是一组语句一起执行任务。每一个Objective-C的程序有一个C函数main(),最常见的程序,可以定义附加功能。

可以分割成单独的函数的代码。如何分割代码在不同的功能,但逻辑上的划分通常是让每个函数执行特定任务。

函数声明告诉编译器函数的名称,返回类型和参数。函数定义提供在实际的函数体中。

基本上Objective-C中,我们调用函数作为方法。

Objective-C基础框架提供了许多内置程序可以调用的方法。例如,使用AppendString()方法可追加字符串到另一个字符串。

方法是已知的各种名称,如一个函数或子例程或过程等

定义一个方法

在Objective-C编程的方法定义的一般形式如下:

- (return_type) method_name:( argumentType1 )argumentName1 
joiningArgument2:( argumentType2 )argumentName2 ... 
joiningArgumentn:( argumentTypen )argumentNamen 
{
   body of the function
}

在Objective-C编程语言定义的方法的方法头和方法体。下面是所有部分的方法:

  • 返回类型: 方法可以返回一个值。 return_type是函数返回值的数据类型。有些方法执行所需的操作,不返回值。在这种情况下,return_type关键字是void。

  • 方法名称: 这是实际的方法名。方法名和参数表共同构成的方法签名。

  • 参数: 一个参数像一个占位符。当函数被调用时,你传递一个值的参数。这个值被称为实际参数或参数。参数列表是指的类型,顺序和数量的参数的方法。参数是可选的,方法可能不包含任何参数。

  • 链接参数: 连接的参数,使其更易于阅读和同时调用明确。

  • 方法体: 该方法的主体包含语句定义的方法用于做什么的集合。

例子:

以下是max()方法的源代码。这个方法有两个参数num1和num2,两者之间并返回最大:

/* function returning the max between two numbers */
- (int) max:(int) num1 secondNumber:(int) num2 
{
   /* local variable declaration */
   int result;
 
   if (num1 > num2)
   {
      result = num1;
   }
   else
   {
      result = num2;
   }
 
   return result; 
}

方法声明:

方法声明告诉编译器函数名以及如何调用该方法。实际的正文的功能,是可以分别定义的。

方法声明有以下几个部分:

- (return_type) function_name:( argumentType1 )argumentName1 
joiningArgument2:( argumentType2 )argumentName2 ... 
joiningArgumentn:( argumentTypen )argumentNamen;
对于上述定义的函数max(),如下方法声明:
-(int) max:(int)num1 andNum2:(int)num2;

方法声明时,需要在一个源文件中定义的方法,并在另一个文件中调用该方法。在这种情况下,应该声明在上面的文件调用该函数的功能。

调用一个方法:

虽然创建一个Objective-C方法,能给什么功能做一个定义。要使用这个方法,必须调用该函数执行定义的任务。

当程序调用一个函数,程序的控制权转移到所谓的方法。定义被调用的方法执行任务,当其返回语句执行或达到其功能的结局结束大括号时,程序控制返回到主程序。

要调用一个方法,只需要通过所需的参数随着方法的名称,如果方法返回一个值,那么可以存储返回值。例如:

#import <Foundation/Foundation.h>

@interface SampleClass:NSObject
/* method declaration */
- (int)max:(int)num1 andNum2:(int)num2;
@end

@implementation SampleClass

/* method returning the max between two numbers */
- (int)max:(int)num1 andNum2:(int)num2{
/* local variable declaration */
   int result;
 
   if (num1 > num2)
   {
      result = num1;
   }
   else
   {
      result = num2;
   }
 
   return result; 
}

@end

int main ()
{
   /* local variable definition */
   int a = 100;
   int b = 200;
   int ret;
   
   SampleClass *sampleClass = [[SampleClass alloc]init];

   /* calling a method to get max value */
   ret = [sampleClass max:a andNum2:b];
 
   NSLog(@"Max value is : %d", ret );
 
   return 0;
}
执行 max() 函数 及 main() 函数,编译源代码。在运行最终的可执行文件,它会产生以下结果:
2016-07-07 20:28:45.912 demo[26080] Max value is : 200

 类似资料: