原文链接:http://www.cnblogs.com/liufan9/archive/2013/04/02/2995626.html

对于以前做C#或者JAVA开发的朋友而言,初次接触iOS开发,Obj-C的函数命名方式可能会感觉非常不习惯。

尤其是打开AppDelegate.m,映入眼帘的代码竟然是:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
return YES;
}

不知道会不会有朋友和我当初同样的感觉——天啊,这也太长了!!!

其实,在Obj-C中,上面这个函数的函数名应该是:

- (BOOL)application:didFinishLaunchingWithOptions:

括号后面跟随的application和launchOptions是在函数内使用的参数。

我们可以将这个函数解读为“应用程序:完成启动使用选项:”。

其中“应用程序”冒号后面的参数顾名思义就是应用程序自身。

而“完成启动使用选项”冒号后面的参数顾名思义就是启动的选项。

这里我用了两个“顾名思义”,对就是顾名思义!在Obj-C的函数命名的方式有点类似于自然语言,相信大家会像我一样,随着对iOS开发的逐渐深入,会越来越适应甚至喜欢这种命名方式的。

下面再举一个例子,如果我们在java中定义一个加法的函数,大概会用如下方式:

    /**
* 计算a+b的结果
* @param a
* @param b
* @return 返回a+b的和
*/
public int add(int a, int b) {
return a + b;
}

在java中定义函数时,通常我们会习惯编写一个简单的注释,如此一来我们可以在程序的其他位置,利用eclipse的智能提示看到这些参数分别代表什么意思,还可以使用Javadoc工具生成程序文档。这是非常方便而且有意义的!

而在Obj-C中我们会如何做呢?首先定义一个函数,代码如下:

- (NSInteger)addA:(NSInteger)a withB:(NSInteger)b {
return a + b;
}

而在调用该函数时,Xcode的提示会大概如下所示:

[self addA:(NSInteger) withB:(NSInteger)];

此时,我们可以把这句话解读成“加A和B”,有没有觉得更容易理解一些啊?应该会的,呵呵。

在Obj-C中,如果养成良好的函数命名习惯。相信随着时间的推移,你会发现,需要写的注释会越来越少。尽管在Xcode中没有类似于eclipse的智能提示,但是这并不会妨碍我们一目了然地看明白每个函数都是做什么的,以及它们都需要什么参数,乃至各个参数都分别应该是什么类型的。

一起来享受快乐的iOS开发之旅吧~~~

[转载]一个小例子介绍Obj-C的函数命名方式的更多相关文章

  1. 使用Trinity拼接以及分析差异表达一个小例子

    使用Trinity拼接以及分析差异表达一个小例子  2017-06-12 09:42:47     293     0     0 Trinity 将测序数据分为许多独立的de Brujin grap ...

  2. java连接mysql的一个小例子

    想要用java 连接数据库,需要在classpath中加上jdbc的jar包路径 在eclipse中,Project的properties里面的java build path里面添加引用 连接成功的一 ...

  3. java操作xml的一个小例子

    最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...

  4. MVVM模式的一个小例子

    使用SilverLight.WPF也有很长时间了,但是知道Binding.Command的基本用法,对于原理性的东西,一直没有深究.如果让我自己建一个MVVM模式的项目,感觉还是无从下手,最近写了一个 ...

  5. 关于SVN配置文件的一个小例子

    1   背景假设 厦门央瞬公司是一家电子元器件设备供应商,其中有个ARM部门,专门负责ARM芯片的方案设计.销售,并在北京.上海各设立了一个办事处.对于工作日志,原先采用邮件方式发给经理,但是这种方式 ...

  6. Vue2.x源码学习笔记-从一个小例子查看vm实例生命周期

    学习任何一门框架,都不可能一股脑儿的从入口代码从上到下,把代码看完, 这样其实是很枯燥的,我想也很少有人这么干,或者这么干着干着可能干不下去了. 因为肯定很无聊. 我们先从一个最最简单的小例子,来查看 ...

  7. 从一个小例子认识SQL游标

    1    什么是游标: 关系数据库中的操作会对整个行集起作用. 例如,由 SELECT 语句返回的行集包括满足该语句的 WHERE 子句中条件的所有行. 这种由语句返回的完整行集称为结果集. 应用程序 ...

  8. Hibernate入门1 - Hibernate概述及第一个小例子

    一.什么是ORM? ORM,即Object Relational Mapping.我们知道,利用面向对象的思想编写的数据库应用程序最终都是把对象信息保存在关系型数据库中,于是需要编写与底层数据库相关的 ...

  9. Spring和Hibernate结合的一个小例子

    1.新建一个SpringHibernate的maven项目 2.pom文件的依赖为 <dependency> <groupId>junit</groupId> &l ...

随机推荐

  1. 数据库对象(视图,序列,索引,同义词)【weber出品必属精品】

    视图视图的定义:视图就是一个查询的别名为什么使用视图限制数据的存取 SQL> conn /as sysdba 已连接. SQL> grant create view to scott; 授 ...

  2. OC基础 可变数组与不可变数组的使用

    OC基础 可变数组与不可变数组的使用 1.不可变数组 1.1不可变数组的创建 //实例方法 NSArray *array = [[NSArray alloc] initWithObjects:&quo ...

  3. C++中引用和指针详解

    先来分析指针这个东东: 从概念上讲,指针本质上就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变. 上面的图表示了程序运行时变量的值 ...

  4. [QT]QT概述

    QT概述 基于C++的GUI开发框架,跨平台.Qt 是一个用于桌面系统和嵌入式开发的跨平台应用程序框架. QT是挪威TROLLTECH公司开发的跨平台C++工具,在UNIX下非常出名:他的宗旨是“一次 ...

  5. Java 中字符串的子串搜索

    基友前两天参加了阿里的实习生面试,问了个问题,就是关于字符串的子串搜索的问题.想想实现方式无非就是两层循环,但是 java 中是有现成实现的,于是我就去查查源码,看看 java 语言怎么实现这个的,发 ...

  6. select p.id, name,ROW_NUMBER() over(PARTITION by name order by p.id) names from person p

    select p.id, name,ROW_NUMBER() over(PARTITION  by name order by p.id) names from person p

  7. 研究 UIActivityViewController

    研究 UIActivityViewController 发布于:2014-04-25 09:51阅读数:5903 特定的编程语言,如 Lisp.lo 和 Mathematica 都是同像性的(homo ...

  8. [TYVJ] P1027 木瓜地

    木瓜地 背景 Background USACO OCT09 4TH   描述 Description Bessie不小心游荡出Farmer John的田地,而走进了相邻的农民的地.她举起一个木瓜,木瓜 ...

  9. Codeforces 474D Flowers

    http://codeforces.com/problemset/problem/474/D 思路:F[i]=F[i-1]+(i>=K)F[i-k] #include<cstdio> ...

  10. DEVExpress For WPF 中GridControl如何实现滚动分页(延迟查询)

    在显示大量数据时一般采用分页显示,但是最近用户需要滚动显示,那么问题来了,滚动显示要求将数据全部查询回来,这显然会导致显示速度很慢. 好在想到一种方式,就是当用户滚动鼓动条的时候再查询下面的数据.好吧 ...