函数是一组语句一起执行任务。每一个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;
}@endint 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

Objective-C 函数相关推荐

  1. objective c 函数声明

    1) -/+: 这个称做scope, 如果在函数前面是- ,那么理解为一般的函数:如果是+, 可以理解为c++中的static函数 2) 函数的参数声明: 如果没有参数的话,在函数名后面,可以什么都不 ...

  2. predict函数 R_学习|R语言做机器学习的常用函数总结

    预测函数:predict() type="prob"判别该量度的昆虫归类为A.B和C的概率:type="response":判别该量度的昆虫的类别: 预测分类的 ...

  3. 重点:机器学习总结之各算法常用包和函数

    基本操作常用函数及包 预测函数:predict() type="prob"判别该量度的昆虫归类为A.B和C的概率:type="response":判别该量度的昆 ...

  4. python 非线性规划_自动驾驶运动规划-Hybird A*算法(续)

    Hybird A*算法保证生成的路径是车辆可实际行驶的,但它仍然包含很多不必要的车辆转向操作,我们可以对其进行进一步的平滑和优化. Objective Function 对于Hybird A*生成的车 ...

  5. 【文献阅读】Federated Accelerated Stochastic Gradient Descent

    文章目录 1 Federated Accelerated Stochastic Gradient Descent (FedAc) 2 challenge 3 how to do 4 baseline ...

  6. 《Deep One-Class Classification》在异常检测的一种检测计算工具

    <Deep One-Class Classification> 发表的刊物:ICML 2018 论文地址链接:http://proceedings.mlr.press/v80/ruff18 ...

  7. iPhone摄影中的深度捕捉(WWDC2017-Session 507)

    视频地址,只能用safari观看 前言 507是深度媒体相关的概念层面的内容.主要为下面4个部分: Depth and disparity on iPhone 7 Plus Streaming dep ...

  8. 损失函数(Loss function)、代价函数(成本函数)(Cost function)、目标函数(objective function)的区别与联系

    基本概念: 损失函数(Loss function):计算的是一个样本的误差. 损失函数是定义在单个训练样本上的,也就是就算一个样本的误差,比如我们想要分类,就是预测的类别和实际类别的区别,是一个样本的 ...

  9. Objective C内存管理之理解autorelease------面试题

    Objective C内存管理之理解autorelease Autorelease实际上只是把对release的调用延迟了,对于每一个Autorelease,系统只是把该Object放入了当前的Aut ...

  10. java怎么使用log函数_在使用couenne求解器的spyder中使用logof函数

    我在一个简单的MINLP模型中有以下约束: model.cm2=Constraint(expr = model.xB2 == log(1.0+model.xA2)) 当我调用bonmin(来自AMPL ...

最新文章

  1. c语言正数与负数相加_C语言数据基本类型(1)
  2. 211.Alpha多样性箱线图(样章,11图2视频)
  3. Hinton构思下一代神经网络:属于无监督对比学习
  4. 怎样打造高效节能的数据中心
  5. 看穿容器的外表,Linux容器实现原理演示
  6. Idea进行远程Debug
  7. 中国最佳广告创意图片_设计一个系统,以帮助赢得最佳创意
  8. 高大上的集团名字_中国办公家具行业“高大上”的企业文化节 非中泰龙集团莫属!...
  9. USACO1.1.3 - Friday the Thirteenth
  10. ListViewWebPart Code
  11. 伪原创方法-学习一下
  12. linux sudo 命令
  13. 常用的几种非对称加密算法
  14. Python 加密 shellcode 免杀
  15. Flutter 淡入淡出与逐渐出现动画
  16. AcWing - 高斯消元解线性方程组(高斯消元)
  17. linux CentOS7安装VCS、Verdi、SCL
  18. 康托展开详解 -csdn博客
  19. Windows 2012 R2服务器的80端口被IIS占用的最好处理办法
  20. 联想小新Air14 指纹解锁突然失效

热门文章

  1. c++使用librdkafka kerberos认证
  2. 多层感知机BP算法推导
  3. keil安装stm32系列
  4. Java之美[从蛮荒到撬动地球]之设计模式四
  5. javaweb后台管理系统
  6. 【算法与数据结构】—— 大数运算
  7. 服务器硬件工程师从入门到精通系列视频教程(1)-基础篇-赵振坤-专题视频课程...
  8. 51单片机智能小车寻循迹代码
  9. java nutch 爬虫_Java分布式爬虫Nutch教程——导入Nutch工程,执行完整爬取
  10. AVR 上的汇编圈圈操作系统