原文链接: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开发之旅吧~~~

最新文章

  1. css样式之border-radius
  2. T-SQL查看数据库恢复(RESTORE)时间
  3. appium 等待方法 转
  4. iOS 远程推送通知
  5. 使用JDK自带的visualvm进行性能监测和调优
  6. hdu 1381 Crazy Search
  7. 用java的socket来发送一个类
  8. 2017年试试Web组件化框架Omi
  9. 使用 HttpRequester 更方便的发起 HTTP 请求
  10. js随机背景颜色
  11. 从零开始学习PYTHON3讲义(十二)画一颗心送给你
  12. svg(可缩放矢量图形)
  13. docker_监控
  14. Mac 解决 Sourcetree 同步代码总需要密码的问题
  15. JSON库的使用研究(一)
  16. 常用LaTeX随时更
  17. react的生命周期需要知道的。
  18. jvm本地实战
  19. 使用管道和cronolog切割日志
  20. ftk学习记(滑动条篇)

热门文章

  1. 华为 oj 公共子串计算
  2. java的InputStream和InputStreamReader有什么区别??
  3. C#在使用串口读一长段数据时,前面加延时,等串口缓冲全部收到再去读
  4. git教程 入门
  5. nodejs 保存 payload 发送过来的文件
  6. 数据链路层-点对点协议PPP
  7. MAC Intellij IDEA 常用快捷键
  8. 修改mysql的默认字符集
  9. HBase架构深度解析
  10. Android Development Tools 发生checkAndLoadTargetData错误