IOS开发之NSObject协议类方法说明
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协议类方法说明相关推荐
- iOS开发之UI开发(UITableView)
UITableView 继承自UIScrollView,性能极佳 UITableView的两种样式 UITableViewStylePlain列表样式 UITableViewStyleGrouped ...
- iOS开发之Objective-C(基础篇)-李飞-专题视频课程
iOS开发之Objective-C(基础篇)-232人已学习 课程介绍 该系列课程是iOS开发之Objective-C基础入门视频.课程中会详细的讲解OC语法特点,面向对象的使用,循环 ...
- ios开发之OC基础-类和对象
ios开发之OC基础-类和对象 本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录 ...
- iOS开发之AVKit框架使用
2019独角兽企业重金招聘Python工程师标准>>> iOS开发之AVKit框架使用 一.引言 在iOS开发框架中,AVKit是一个非常上层,偏应用的框架,它是基于AVFounda ...
- IOS开发之JSON序列化从客户端发送到服务器端
IOS开发之JSON序列化从客户端发送到服务端的准备工作 共有6种情况 需要序列化 请查看源代码. 服务器端接受我们采用的是java的Tomcat服务器.配合 struts 2 controller框 ...
- IOS开发之UI基础LOL英雄展示-15
IOS开发之UI基础LOL英雄展示-15 // // ViewController.m // 15-英雄展示-单组数据 // // Created by 鲁军 on 2021/2/3. //#impo ...
- ios html清除缓存,iOS开发之1行代码实现缓存计算及清除缓存
话不多说,直接撸代码 // // gzhCache.h // cache // // Created by 郭志贺 on 2020/5/27. // Copyright © 2020 郭志贺. All ...
- iOS开发之Accounts框架详解
2019独角兽企业重金招聘Python工程师标准>>> iOS开发之Accounts框架详解 Accounts框架是iOS原生提供的一套账户管理框架,其支持Facebook,新浪微博 ...
- (0045) iOS 开发之MBProgressHUD 源码学习
(0045) iOS 开发之MBProgressHUD 源码学习 第一部分:学习所得和分析线程 1. 学习到了kvo 的使用 和屏幕方向的旋转判断. 2. 如果调起这个 HUD 的方法不是在主线程调 ...
最新文章
- FineUIMvc随笔(1)动态创建表格列
- TP5 实现微信支付和支付宝支付
- C#中的cookie编程
- python tkinter计算器实例_python -Tkinter 实现一个小计算器功能
- 数据库 日期格式操作
- python re 模块
- C/C++ C# unity经常使用的一些快捷键
- Appium下载安装教程及环境变量配置(安装教程)
- 机房黑科技:京东数科机房巡检机器人
- Win10电脑只有一个C盘怎么分区分盘?
- 又是一次数据分析的例子(自杀分析)
- 简易计算器app的制作
- 核心内参: TDR原理及常见问题
- matlab:双或三方演化博弈,lotka-Volterra 1.双方演化博弈
- Mac下载软件的网站
- execjs安装及相关问题解决
- There is no Qt version assigned to project
- 基于FPGA的直接数字频率合成器的的设计和实现设计和实现
- 计算机机房abc标准,ABC级数据中机房建设要求.doc
- 于是,我整个人都斯巴达了
热门文章
- 保洁阿姨看完都会了!java面向对象编程开发证书
- 【Java Web开发指南】Mybatis一对多关联映射
- 【机器学习入门到精通系列】多变量线性回归(附详细代码)
- 在sublime中让html和css链接
- authorization 传 就跨域_JavaScript 使用 headers Authorization 存放 token 出现跨域错误?...
- mysql遵循acid_mysql关系型数据库遵循ACID规则
- mysql like 替代算法_mysql – 什么是替代连接查询
- oracle取_后的数字,聊聊四种Oracle数字取整函数
- 企业网络推广浅析网站优化哪些设置会影响蜘蛛的爬取?
- 网站SEO优化之如何维护网站权重?