仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1827|回复: 19
打印 上一主题 下一主题

[学习教程] IOS编程之座谈Objective-C :空段selector仓酷云

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:37:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
iPhoneSDK安装,然后最基本的是你要熟悉C语言,再来你得学习开发iPhone所使用的Objective-C语言,接著是Cocoa。如果你是Mac平台开发的入门用户前奏

Objective-C很有本性,一个较为光显的特性就是办法函数是分段式的,即函数名不写在一同,而是将其拆成N段,分离对应N个参数,年夜年夜增添了代码的可读性。

  • #defineWQ_FUNC_LOGNSLog(@"%s",__FUNCTION__)


  • -(void)firstSegment:(id)firstObjsecSegment:(id)secObjthirdSegment:(id)thirdObj
  • {
  • WQ_FUNC_LOG;
  • }
为了便利申明,我在该办法中打印一下本人的办法称号。发送该旌旗灯号(普通地说是挪用该办法)以后

  • -(void)viewDidLoad
  • {
  • [superviewDidLoad];

  • [selffirstSegment:@"1"secSegment:@"2"thirdSegment:@"3"];
  • }
我们会失掉以下的log输入,能够明晰的看到selector的名字为firstSegment:secSegment:thirdSegment:

  • 2013-07-0516:34:13.977Test[1828:c07]-[WQTestViewControllerfirstSegment:secSegment:thirdSegment:]
主题

OK,前奏已完,进进主题,倘使我在函数原型中删撤除第二个参数secObj,会产生甚么呢?

  • -(void)firstSegment:(id)firstObjsecSegment:(id)thirdSegment:(id)thirdObj
  • {
  • WQ_FUNC_LOG;
  • }
假如利用Xcode主动补齐办法,会发明是如许挪用

  • -(void)viewDidLoad
  • {
  • [superviewDidLoad];

  • [selffirstSegment:@"1"secSegment:@"2":@"3"];
  • }
运转一下会失掉以下log:

  • 2013-07-0517:26:10.725Test[1976:c07]-[WQTestViewControllerfirstSegment:secSegment::]
结论是,办法被声明成了firstSegment:secSegment::这个名字,那末参数呢?固然也不难推测和考证。

  • -(void)firstSegment:(id)firstObjsecSegment:(id)thirdSegment:(id)thirdObj
  • {
  • WQ_FUNC_LOG;
  • NSLog(@"args[]={%@,%@,%@};",firstObj,thirdSegment,thirdObj);
  • }
当thirdSegment和thirdObj都被视为参数,我们就不能不有如许一个勇敢的料想,岂非selector能够撑持空段?岂非selector能够没着名字?
实验造一个没着名字的办法,正确的说法是,一个空的selector

  • -(void):(id)obj
  • {
  • }

  • -(void)viewDidLoad
  • {
  • [superviewDidLoad];

  • SELsel=@selector(:);
  • if([selfrespondsToSelector:sel]){
  • NSLog(@"urright");
  • }
  • }
编译运转,Log输入告知我们,我们的料想是准确的,Objective-C撑持空段selector。

结论

Objective-C撑持空段selector,这明显不具有优秀的代码可读性,平常我们也不会这么写这么用,那为何还要出格提出来讲这件事呢?只是想给人人提个醒,偶然候我们的一个大意大概一个不当心,就有大概变成一个必要debug很久的低水准bug,特别是,delegate办法定名又臭又长的时分……

不管是学习Objective-C语言,还是学习ios,我都只是跟着书上的例子,在苹果机上,在Xcode和InterfaceBuilder开发环境中,按部就班的“抄”些应用程序。
再现理想 该用户已被删除
沙发
发表于 2015-1-18 12:56:30 | 只看该作者
重要的是,放眼全球也的确找不到第二个如苹果iOS平台这样健壮、完整、先进而且为开发者带来真实收益的开发平台来。
admin 该用户已被删除
板凳
发表于 2015-1-22 05:13:18 | 只看该作者
这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。
因胸联盟 该用户已被删除
地板
发表于 2015-2-6 16:34:42 | 只看该作者
我也从简单的状态栏适配开始,先研究了下关于状态栏的适配,特总结如下,供广大网友一起讨论交流。
再见西城 该用户已被删除
5#
发表于 2015-2-9 16:46:59 | 只看该作者
从C语言入门,因为IOS开发用的是OC语言,是在C基础上的,不过也跟C不是很搭界,你可以直接学习OC语言也可以,
兰色精灵 该用户已被删除
6#
发表于 2015-2-27 11:50:42 | 只看该作者
down下code4app网站的每个分类的代码挨着看
爱飞 该用户已被删除
7#
发表于 2015-3-9 02:14:18 | 只看该作者
特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地
冷月葬花魂 该用户已被删除
8#
发表于 2015-3-11 08:07:50 | 只看该作者
边吃零食边看Stanford的视频教程
若相依 该用户已被删除
9#
发表于 2015-3-11 16:16:50 | 只看该作者
在此,某不才愿将安装成功的Mac OS X系统的vmware虚拟机向有志学习iOS开发的各位学友们免费开放出来,经测试,可以在WindowsXP/Win7系统上完美运行,即便你的机器只有2GB内存。
蒙在股里 该用户已被删除
10#
发表于 2015-3-19 00:45:46 | 只看该作者
开始的时候甚至想放弃,不过想想自己的未来,只能咬牙坚持,课下就不停的缠着老师。放学就补基础,这些基础的东西没有速成的,只有刻苦努力。我是后来发现的,转变自己的心态,不要读书看资料当成一种痛苦
莫相离 该用户已被删除
11#
发表于 2015-3-26 19:06:21 | 只看该作者
iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
变相怪杰 该用户已被删除
12#
发表于 2015-4-4 06:40:51 | 只看该作者
AD: iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
透明 该用户已被删除
13#
发表于 2015-4-9 18:13:32 | 只看该作者
最后在做项目的时候一定要认真对待,毕竟这个直接和你的就业挂钩,这也是锻炼你实际操作的能力。
海妖 该用户已被删除
14#
发表于 2015-4-10 16:48:49 | 只看该作者
开始的时候甚至想放弃,不过想想自己的未来,只能咬牙坚持,课下就不停的缠着老师。放学就补基础,这些基础的东西没有速成的,只有刻苦努力。我是后来发现的,转变自己的心态,不要读书看资料当成一种痛苦
小魔女 该用户已被删除
15#
发表于 2015-4-13 16:48:06 | 只看该作者
培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。
金色的骷髅 该用户已被删除
16#
发表于 2015-4-19 23:16:39 | 只看该作者
近期由于IOS7的发布,所以应用的适配潮可谓是都搞的锣鼓喧天,甚是热闹,因此呢,因适配IOS7而产生的问题也是铺天盖地的卷来,
柔情似水 该用户已被删除
17#
发表于 2015-4-21 14:47:20 | 只看该作者
每个行业都一样,想要一天学有所成是不可能的,一定要做好努力的准备,做ios不是简单的学会oc语言。不怕多走弯路,就怕不肯动手。
18#
发表于 2015-4-21 19:33:24 | 只看该作者
这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。
小女巫 该用户已被删除
19#
发表于 2015-5-4 17:14:25 | 只看该作者
培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。
小妖女 该用户已被删除
20#
发表于 2015-5-6 12:10:51 | 只看该作者
近期由于IOS7的发布,所以应用的适配潮可谓是都搞的锣鼓喧天,甚是热闹,因此呢,因适配IOS7而产生的问题也是铺天盖地的卷来,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-2 14:53

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表