李程站 发表于 2013-2-4 02:11:52

浅谈Objective-C基本语法

Objective-C基本语法 是本文要介绍的内容,对初学者来说,objective-c存在了很多令人费解的写法,实际上他们是非常优雅的。程序员写的最多的就是函数以及调用自己写的或者别人写的函数。本文就从函数的角度来看下objective-c的优雅之处。
C# 和objective-c同属于C 系列语言。让我们先看下C# 的函数定义和调用,做个对比。
C#函数的定义:

[*]public void doIt(string actorName, string movieName, int timesSeen)
[*]{
[*]Console.Write("{0} is my favorite actor in the movie {1}, I saw it {2} times.", actorName, movieName, timesSeen);
[*]}
函数的调用:

[*]Class1 objMovie = new Class1();
objMovie.doIt("莱昂纳多·迪卡普里奥", "盗梦空间", 120);
在让.net程序员看下objective-c的定义:

[*]- (void) doIt:(NSString *) actorName movieName: (NSString*) value timesSeen: (int)times   
[*]{   
[*]NSLog(@"%@ is my favorite actor in the movie %@, I saw it %i times.",actorName, value, times);   
[*]}
如果你第一次看objective-c,肯定会琢磨不透上面的代码,怀疑是不是写错了。
对于上面这个函数的定义:
1、'-'表示这个函数是实例函数(类似非静态函数),'+'表示这个函数是类函数(类似静态函数)
2、(void)表示这个函数没有返回值。
3、函数名是'doIt: movieName: timesSeen:',而不是'doIt'
4、参数用空格隔开
5、参数类型写在括号中
6、参数分内部参数和外部参数,如电影名称,内部参数是:value,外部参数是:movieName,如图:
http://images.51cto.com/files/uploadimg/20110802/1328180.png
7、函数的一个参数没有外部参数的名称,有内部参数名。如:actorName。
调用,如图:
http://images.51cto.com/files/uploadimg/20110802/1328181.png
从上面代码可以看出除了第一个参数,其余的参数都可以加上外部参数名称用于区别。
从上面可以看出objective-c和C#区别很大,实在会令.net程序员费解。objective-c函数设计的优雅之处在于即有内部参数名又有外部参数名,可以不用在再内部定义变量来存放函数的参数。
小结:浅谈Objective-C基本语法的内容介绍完了,本篇文章是对objective-c函数学习的一个简单总结,最后希望本文对你有所帮助!
【编辑推荐】

[*]Objective-C学习笔记调用静态库详解
[*]详解Objective-c闭包简单应用
[*]剖析Objective-C持久化教程
[*]详解Objective-c Block应用
[*]了解Objective-C中一些基本操作 初学者必看
[*]详解Objective-C可变参数函数定义
页: [1]
查看完整版本: 浅谈Objective-C基本语法