首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

iOS开发:Objective-C优雅的语法

iOS开发:Objective-C优雅的语法

对初学者来说,Objective-C存在了很多令人费解的写法,实际上他们是非常优雅的。
  程序员写的最多的就是函数以及调用自己写的或者别人写的函数。本文就从函数的角度来看下Objective-C的优雅之处。
  C#和Objective-C同属于c系列语言。让我们先看下C#的函数定义和调用,做个对比。
  C#函数的定义:
  publicvoiddoIt(stringactorName,stringmovieName,inttimesSeen)
  {
  Console.Write("{0}ismyfavoriteactorinthemovie{1},Isawit{2}times.",actorName,movieName,timesSeen);
  }
  函数的调用:
  Class1objMovie=newClass1();
  objMovie.doIt("莱昂纳多·迪卡普里奥","盗梦空间",120);
  在让.net程序员看下Objective-C的定义:
  -(void)doItNSString*)actorNamemovieNameNSString*)valuetimesSeenint)times{
  NSLog(@"[email=%@ismyfavoriteactorinthemovie%@,Isawit%itimes.]%@ismyfavoriteactorinthemovie%@,Isawit%itimes.",actorName,value,times[/email]);
  }
  如果你第一次看Objective-C,肯定会琢磨不透上面的代码,怀疑是不是写错了。
  对于上面这个函数的定义:
  1、'-'表示这个函数是实例函数(类似非静态函数),'+'表示这个函数是类函数(类似静态函数)
  2、(void)表示这个函数没有返回值。
  3、函数名是'doIt:',而不是'doIt'
  4、参数用空格隔开
  5、参数类型写在括号中
  6、参数分内部参数和外部参数,如电影名称,内部参数是:value,外部参数是:movieName
  
  7、函数的一个参数没有外部参数的名称,有内部参数名。如:actorName。
  调用:
  
  从上面代码可以看出除了第一个参数,其余的参数都可以加上外部参数名称用于区别。
  从上面可以看出Objective-C和C#区别很大,实在会令.net程序员费解。Objective-C函数设计的优雅之处在于即有内部参数名又有外部参数名,可以不用在再内部定义变量来存放函数的参数。
  总结:本文是对Objective-C函数学习的一个简单总结。
  北邮3G培训基地:http://www.3gtrain.com/
http://www.3gtrain.com/index.asp
返回列表