Objective-C 函数
函数是一组语句一起执行任务。每一个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 函数相关推荐
- objective c 函数声明
1) -/+: 这个称做scope, 如果在函数前面是- ,那么理解为一般的函数:如果是+, 可以理解为c++中的static函数 2) 函数的参数声明: 如果没有参数的话,在函数名后面,可以什么都不 ...
- predict函数 R_学习|R语言做机器学习的常用函数总结
预测函数:predict() type="prob"判别该量度的昆虫归类为A.B和C的概率:type="response":判别该量度的昆虫的类别: 预测分类的 ...
- 重点:机器学习总结之各算法常用包和函数
基本操作常用函数及包 预测函数:predict() type="prob"判别该量度的昆虫归类为A.B和C的概率:type="response":判别该量度的昆 ...
- python 非线性规划_自动驾驶运动规划-Hybird A*算法(续)
Hybird A*算法保证生成的路径是车辆可实际行驶的,但它仍然包含很多不必要的车辆转向操作,我们可以对其进行进一步的平滑和优化. Objective Function 对于Hybird A*生成的车 ...
- 【文献阅读】Federated Accelerated Stochastic Gradient Descent
文章目录 1 Federated Accelerated Stochastic Gradient Descent (FedAc) 2 challenge 3 how to do 4 baseline ...
- 《Deep One-Class Classification》在异常检测的一种检测计算工具
<Deep One-Class Classification> 发表的刊物:ICML 2018 论文地址链接:http://proceedings.mlr.press/v80/ruff18 ...
- iPhone摄影中的深度捕捉(WWDC2017-Session 507)
视频地址,只能用safari观看 前言 507是深度媒体相关的概念层面的内容.主要为下面4个部分: Depth and disparity on iPhone 7 Plus Streaming dep ...
- 损失函数(Loss function)、代价函数(成本函数)(Cost function)、目标函数(objective function)的区别与联系
基本概念: 损失函数(Loss function):计算的是一个样本的误差. 损失函数是定义在单个训练样本上的,也就是就算一个样本的误差,比如我们想要分类,就是预测的类别和实际类别的区别,是一个样本的 ...
- Objective C内存管理之理解autorelease------面试题
Objective C内存管理之理解autorelease Autorelease实际上只是把对release的调用延迟了,对于每一个Autorelease,系统只是把该Object放入了当前的Aut ...
- java怎么使用log函数_在使用couenne求解器的spyder中使用logof函数
我在一个简单的MINLP模型中有以下约束: model.cm2=Constraint(expr = model.xB2 == log(1.0+model.xA2)) 当我调用bonmin(来自AMPL ...
最新文章
- c语言正数与负数相加_C语言数据基本类型(1)
- 211.Alpha多样性箱线图(样章,11图2视频)
- Hinton构思下一代神经网络:属于无监督对比学习
- 怎样打造高效节能的数据中心
- 看穿容器的外表,Linux容器实现原理演示
- Idea进行远程Debug
- 中国最佳广告创意图片_设计一个系统,以帮助赢得最佳创意
- 高大上的集团名字_中国办公家具行业“高大上”的企业文化节 非中泰龙集团莫属!...
- USACO1.1.3 - Friday the Thirteenth
- ListViewWebPart Code
- 伪原创方法-学习一下
- linux sudo 命令
- 常用的几种非对称加密算法
- Python 加密 shellcode 免杀
- Flutter 淡入淡出与逐渐出现动画
- AcWing - 高斯消元解线性方程组(高斯消元)
- linux CentOS7安装VCS、Verdi、SCL
- 康托展开详解 -csdn博客
- Windows 2012 R2服务器的80端口被IIS占用的最好处理办法
- 联想小新Air14 指纹解锁突然失效