oc中NSObject类是所有类的基类,所有类都要继承自它,那么它的方法就显得特别重要,因为所有类都会有这些基本的方法.

看看oc的源码中NSObject是这样定义的:

@interface NSObject <NSObject> {Class isa  OBJC_ISA_AVAILABILITY;}

可以看出,它实现了NSObject协议,下面我们来看看NSObject协议中定义的方法和属性。顺便将它归类为7大类

@protocol NSObject//*****1.识别类*****
@property (readonly) Class superclass;//返回超类对象
- (Class)class;//返回类对象//*******2.识别与比较对象**********
- (BOOL)isEqual:(id)object;//首先判断两个对象是否类型一致,如不一致,直接返回NO,再判断具体内容是否一致
@property (readonly) NSUInteger hash;//返回一个整数,可以用来作为哈希表结构中的表地址
- (instancetype)self;//返回当前对象//**********3.判断继承关系、是否是某类及是否有某种行为(方法)************- (BOOL)isKindOfClass:(Class)aClass;//判断是否是这个类或者这个类的子类的实例
- (BOOL)isMemberOfClass:(Class)aClass;//判断是否是这个类的实例 与isKindOfClass的区别在于它只能判断类,不能判断子类
- (BOOL)respondsToSelector:(SEL)aSelector;//判断是否实现了某方法
- (BOOL)conformsToProtocol:(Protocol *)aProtocol;//判断是否实现了某协议//*********4消息传递********
- (id)performSelector:(SEL)aSelector;//将指定的消息配送到接收器,应用aSelector指定的消息
- (id)performSelector:(SEL)aSelector withObject:(id)object;//同上 可以接受一参数
- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2; //同上,可接受两对象参数//*******5属性描述******
@property (readonly, copy) NSString *description;//对象返回一个字符串来描述它的内容
@property (readonly, copy) NSString *debugDescription;//返回一个字符串,描述在调试器中的接收器演示的内容//****6确定代理***********
- (BOOL)isProxy;//判断是否接收器是否从NSObject继承//*******7管理内存的方法********************
- (instancetype)retain OBJC_ARC_UNAVAILABLE;//增加对象的计数器
- (oneway void)release OBJC_ARC_UNAVAILABLE;//减少对象的计数器
- (instancetype)autorelease OBJC_ARC_UNAVAILABLE;//自动减少对象的计数器,但是以推迟的方式来实现
- (NSUInteger)retainCount OBJC_ARC_UNAVAILABLE;//返回一个对象当前的计数器
- (struct _NSZone *)zone OBJC_ARC_UNAVAILABLE;//垃圾自动回收@end

转载于:https://www.cnblogs.com/hj2xx2hj/p/5036178.html

IOS开发之NSObject协议类方法说明相关推荐

  1. iOS开发之UI开发(UITableView)

    UITableView 继承自UIScrollView,性能极佳 UITableView的两种样式 UITableViewStylePlain列表样式 UITableViewStyleGrouped ...

  2. iOS开发之Objective-C(基础篇)-李飞-专题视频课程

    iOS开发之Objective-C(基础篇)-232人已学习 课程介绍         该系列课程是iOS开发之Objective-C基础入门视频.课程中会详细的讲解OC语法特点,面向对象的使用,循环 ...

  3. ios开发之OC基础-类和对象

    ios开发之OC基础-类和对象 本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录 ...

  4. iOS开发之AVKit框架使用

    2019独角兽企业重金招聘Python工程师标准>>> iOS开发之AVKit框架使用 一.引言 在iOS开发框架中,AVKit是一个非常上层,偏应用的框架,它是基于AVFounda ...

  5. IOS开发之JSON序列化从客户端发送到服务器端

    IOS开发之JSON序列化从客户端发送到服务端的准备工作 共有6种情况 需要序列化 请查看源代码. 服务器端接受我们采用的是java的Tomcat服务器.配合 struts 2 controller框 ...

  6. IOS开发之UI基础LOL英雄展示-15

    IOS开发之UI基础LOL英雄展示-15 // // ViewController.m // 15-英雄展示-单组数据 // // Created by 鲁军 on 2021/2/3. //#impo ...

  7. ios html清除缓存,iOS开发之1行代码实现缓存计算及清除缓存

    话不多说,直接撸代码 // // gzhCache.h // cache // // Created by 郭志贺 on 2020/5/27. // Copyright © 2020 郭志贺. All ...

  8. iOS开发之Accounts框架详解

    2019独角兽企业重金招聘Python工程师标准>>> iOS开发之Accounts框架详解 Accounts框架是iOS原生提供的一套账户管理框架,其支持Facebook,新浪微博 ...

  9. (0045) iOS 开发之MBProgressHUD 源码学习

    (0045) iOS 开发之MBProgressHUD 源码学习 第一部分:学习所得和分析线程 1.  学习到了kvo 的使用 和屏幕方向的旋转判断. 2. 如果调起这个 HUD 的方法不是在主线程调 ...

最新文章

  1. FineUIMvc随笔(1)动态创建表格列
  2. TP5 实现微信支付和支付宝支付
  3. C#中的cookie编程
  4. python tkinter计算器实例_python -Tkinter 实现一个小计算器功能
  5. 数据库 日期格式操作
  6. python re 模块
  7. C/C++ C# unity经常使用的一些快捷键
  8. Appium下载安装教程及环境变量配置(安装教程)
  9. 机房黑科技:京东数科机房巡检机器人
  10. Win10电脑只有一个C盘怎么分区分盘?
  11. 又是一次数据分析的例子(自杀分析)
  12. 简易计算器app的制作
  13. 核心内参: TDR原理及常见问题
  14. matlab:双或三方演化博弈,lotka-Volterra 1.双方演化博弈
  15. Mac下载软件的网站
  16. execjs安装及相关问题解决
  17. There is no Qt version assigned to project
  18. 基于FPGA的直接数字频率合成器的的设计和实现设计和实现
  19. 计算机机房abc标准,ABC级数据中机房建设要求.doc
  20. 于是,我整个人都斯巴达了

热门文章

  1. 保洁阿姨看完都会了!java面向对象编程开发证书
  2. 【Java Web开发指南】Mybatis一对多关联映射
  3. 【机器学习入门到精通系列】多变量线性回归(附详细代码)
  4. 在sublime中让html和css链接
  5. authorization 传 就跨域_JavaScript 使用 headers Authorization 存放 token 出现跨域错误?...
  6. mysql遵循acid_mysql关系型数据库遵循ACID规则
  7. mysql like 替代算法_mysql – 什么是替代连接查询
  8. oracle取_后的数字,聊聊四种Oracle数字取整函数
  9. 企业网络推广浅析网站优化哪些设置会影响蜘蛛的爬取?
  10. 网站SEO优化之如何维护网站权重?