OC学习篇之---Foundation框架中的NSObject对象
来源:互联网 发布:录制搞怪视频软件 编辑:程序博客网 时间:2024/05/20 13:15
前一篇文章讲到了OC中的代理模式:http://blog.csdn.net/jiangwei0910410003/article/details/41777627,而且前几篇文章就介绍了OC中的类相关知识,从这篇文章开始我们开始介绍Foundation框架。
OC中的Foundation框架是系统提供了,他就相当于是系统的一套api,和Java中的一些系统jar很相似,又早起的一批人开发的,内部有很多现有的类和功能提供给我们使用。那么今天首先来介绍一下Foundation框架中的第一个类NSObject
在之前介绍了类的相关知识,我们看到我们自定义的类都必须实现NSObject类,这个类内部有很多现有的方法可以供我们使用,比如我们经常使用的alloc和init方法,就是NSObject提供的,下面就在来看一下他的一些其他常用方法:
通过代码来演示每个方法的作用:
Person.h
main.m
1、isEqual方法
他的作用就是判断两个指针变量是否指向同一个对象,在OC中他还有一个简单的用法,就是直接使用"=="来进行比较,这两个效果是一样的,但是在Java中是不同的,Java中的"=="是判断两个引用变量是否指向同一个对象,但是其equals方法是判断两个对象的值是否相等(这里的值指的是基本类型,其他对象类型,可以重写这个方法来进行操作)。
2、isMemberOfClass方法
这个方法的作用是判断一个指针变量指向的对象是不是属于一个类创建的,类似于Java中的obj.getClass()==Person.class效果。
3、isKindOfClass方法
这个方法的作用是判断一个指针变量指向的对象是不是一个类的子类,类似于Java中的instanceof关键字的作用
4、respondsToSelector方法
这个方法我们在之前的文章中使用过了,他的作用就是判断一个类中是否有某个方法,他的判断是只要这个方法有实现,就返回YES
如果只在.h文件中定义了,没有在.m文件中实现的话,也是返回NO的
如果这个方法没有在.h文件中定义,但是在.m文件中有实现的话(私有方法),返回YES
只要方法在.m文件中有才会返回YES
这个方法的功能如果在Java中可以使用反射去实现
5、performSelector方法
这个方法的作用就是调用对象中的一个方法,看到上面的例子,这个方法有很多样式:
无参数样式
一个参数的样式
同时他还有一个作用可以直接调用一个类的私有方法,即只在.m文件中实现了的方法:
他回经常结合respondsToSelector方法一起使用,这里demo1就是一个私有的方法,如果在Java中需要用到反射,然后还要强暴一下这个私有方法才能调用。在OC中的实现就简单了。- OC学习篇之---Foundation框架中的NSObject对象
- OC学习篇之---Foundation框架中的NSObject对象
- OC学习篇之---Foundation框架中的NSObject对象
- OC学习篇之---Foundation框架中的NSObject对象
- OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象
- 黑马程序员--OC学习篇之Foundation框架中的NSString对象和NSMutableString对象
- 黑马程序员--OC学习篇之Foundation框架中的NSArray对象和NSMutableArray对象
- OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象
- OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象
- Objective-C Foundation框架中的NSObject对象
- 【OC语法】Foundation框架-NSObject
- OC学习篇之---Foundation框架中的NSArray类和NSMutableArray类
- OC学习篇之---Foundation框架中的NSDirctionary类以及NSMutableDirctionary类
- OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)
- OC学习篇之---Foundation框架中的NSArray类和NSMutableArray类
- OC学习篇之---Foundation框架中的NSArray类和NSMutableArray类
- OC学习篇之---Foundation框架中的NSDirctionary类以及NSMutableDirctionary类
- OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)
- android_framework日记3-MT流程底层消息机制分析
- SVN服务器搭建和使用(一)
- 环境变量不一致导致安装cassandra报错
- 数据库操作-增删改查-多对多关系以及一对多(外键)关系
- MQ消息流中JavaCompute节点如何添加消息头(MQRFH2)属性
- OC学习篇之---Foundation框架中的NSObject对象
- LeetCode -- Longest Substring Without Repeating Characters
- Unity3D学习技巧
- spring嵌套事物
- office 2013下载及安装方案
- SVN服务器搭建和使用(二)
- [ios]UITabBarController 的UITabBarControllerDelegate 与UITabBarDelegate冲突
- java基础整理の多线程
- Mina学习笔记 简单EchoServer(二) 编码解码修改