1、Objective-C 是 iOS 的开发语言。Objective-C 是 C 语言的升级版。对初学者来说,Objective-C 存在了很多令人费解的写法,实际上他们是非常优雅的。有 C语言基础的程序员在专业老师的指导下,用 1 个月的时间就可以完全掌握 Objective-C 这门编程语言了。程序员写的最多的就是函数以及调用自己写的或者别人写的函数。本文就从函数的角度来看下 Objective-C 的优雅之处。C#和 Objective-C 同属于 C 语言 系列。让我们先看下 C#的函数定义和调用,做个对比。C#函数的定义:public void doIt(string actorNam
2、e, 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:
3、(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:,而不是doIt4、参数用空格隔开5、参数类型写在括号中6、参数分内部参数和外部参数,如电影名称,内部参数是:value,外部参数是:movieNameios100 中文网7、函数的一个参数没有外部参数的名称,有内部参数名。如:actorName。调用:objMovie doIt:“莱昂纳多迪卡普里奥“ movieName:“盗梦空间“ timesSeen:120从上面代码可以看出除了第一个参数,其余的参数都可以加上外部参数名称用于区别。从上面可以看出 Objective-C 和 C#区别很大,实在会令.NET 程序员费解。Objective-C 函数设计的优雅之处在于既有内部参数名又有外部参数名,可以不用再在内部定义变量来存放函数的参数。