对象在运行时获取其类型的能力称为内省。内省可以有多种方法实现。
判断对象类型
-(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例
-(BOOL) isMemberOfClass: classObj 判断是否是这个类的实例
我们试试这两个方法的使用。
1、新建Person类继承NSObject,新建Teacher类继承Person 1.1、新建Person类
打印结果:
2012-07-04 14:23:07.965 ObjectiveCTest[2460:f803] teacher Teacher类的成员
只有第一个判断打印出来,isMemberOfClass判断是否是属于这类的实例,是否跟父类有关系他不管。
1.4 isMemberOfClass方法2012-07-04 14:34:17.315 ObjectiveCTest[2595:f803] teacher 是 Teacher类或Teacher的子类
2012-07-04 14:34:17.316 ObjectiveCTest[2595:f803] teacher 是 Person类或Person的子类
2012-07-04 14:34:17.316 ObjectiveCTest[2595:f803] teacher 是 NSObject类或NSObject的子类
三个结果都打印出来了。2、 -(BOOL) respondsToSelector: selector 判读实例是否有这样方法
+(BOOL) instancesRespondToSelector: 判断类是否有这个方法。此方法是类方法,不能用在类的对象
2.1 respondsToSelector的使用这里不写对象的创建和释放了,参考上面的代码
打印结果:
2012-07-04 14:39:49.853 ObjectiveCTest[2723:f803] teacher responds to setSize: method
2012-07-04 14:39:49.854 ObjectiveCTest[2723:f803] teacher class responds to alloc method
中间的那个判断我随便写了个selector,当然没有了。respondsToSelector 检查类方法 alloc返回YES
2.2 instancesRespondToSelector打印结果:
C++ 使用的是强类型:对象必须符合其类型,否则不能通过编译。在 Objective-C 中,id类型类似于(void*) ,可以指向任何类的实例。而不需要强制转换。
下面看看使用,
先把Teacher类中的 teach方法修改一下,改成
-(void)teach
{
NSLog(@"%@ 教数学" ,name);
}
然后实现并调用打印结果:
著作权声明:本文由http://blog.csdn.net/totogo2010/原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!
插件下载:https://github.com/amegan/jquery-flip
1.下载插件后按照介绍流程引入js引用(保留jqmobile js的引用):
2.尝试最简单例子
ok,跑成功了~~~
布丁移动资深安卓开发工程师 任斐 确定演讲主题:《Android 在多屏幕、多设备上的适配》
话题简介:对于安卓多屏幕和多设备适配问题,早在2010年的Google IO大会,就有专门探讨过。这些年来,对于这个普遍存在的问题,Android官方文档并没有给出明确的答案,而各类草根评论,对于这个问题的阐述以及给出的,也都是众说纷纭,仁者见仁,智者见智。本演讲将从应用开发的角度,讨论在Android应用程序开发中,面对众多 Android 设备可能遇到的适配问题及,对众多的思想进行归纳总结,对一些案例进行剖析,并探讨在寻找最优过程中,应该注意和规避的一些问题。
演讲嘉宾:任斐,布丁移动资深安卓开发工程师,曾参与微软亚洲研究院"基于手机 sensor 的数据挖掘"项目,研究手机感应设备在推测用户行为中的应用。现担任布丁移动安卓开发工程师,主要负责布丁优惠券、布丁电影票等多款产品 Android 前端的开发工作。
布丁移动,创新工场家族成员。布丁移动设立于2010年11月,已先后推出布丁爱生活、布丁电影、布丁美食、布丁优惠券、布丁外卖、布丁电影票等多款应用。2011年,由起初生活聚合类apps逐步转向以优惠券为主的产品发展,截至2011年10月底,布丁移动系列产品已拥有近500万活跃用户。同时,布丁移动还在不断研究市场需求,发展新品,希望可以把最实用的生活应用工具推荐给用户。
关于:CMDN移动开发者俱乐部清凉夏日嘉年华
iOS DevCamp 7月27日 | Android DevCamp 7月28日 | 北京 | 新云南皇冠假日酒店
这是一个真正属于移动开发者的会议,参会者以交流、学习、提高、答疑解惑的移动开发实践者为主,你将极少看到投资人、市场人员、名人大腕、还有不知是何目的来参会的“打酱油”的人。参会者只有像你一样的有经验的开发者和工程师。
【特色】:
- 一个真正意义上的iOS/Android开发技术大会。
- 企业间、团队间交流和学习移动开发技术实践的平台。
- Dev to Dev,来自开发者,服务开发者。所有课程内容均不含任何商业推广目的。
- 课程内容覆盖iOS/Android知识体系的重要方面,并重点分享典型移动产品的开发实践。
- 国内资深移动开发专家评审团队对所有课程进行把关,确保课程内容全部为“无水分” “干货” 。
- 全部课程均有资深开发者讲授,他们或许不是名人大腕,但一定是“技术大牛”
- 与会者全部都是移动开发者和工程师及其开发团队成员
【特别设计】:
- 每一个课程打上该属性|Overview、中级|Intermediate、高级|Advanced的标签,有较多代码内容的课程,则打上“Code”标签,以帮助参会者选择参加。
- 每天下午课程结束后,还有2小时的开放空间讨论,由专业引导式引导讨论
- 课程结束后,所有参会者都可以在线做一个测试,以检验一天课程的学习成果,并帮助自己整理一天的知识重点。 所有测试题,均由格外讲师根据自己的演讲内容和幻灯片来提出。