NSObject常用方法
类
- @interface NSObject <NSObject> {
- Class isa OBJC_ISA_AVAILABILITY;
- }
- // 初始化加载
- + (void)load;
- // 初始化对象
- + (void)initialize;
// 初始化对象,分配内存- - (instancetype)init;
- // 分配一个新的接受类实例,并发送init消息,返回初始化对象
- + (instancetype)new;
// init后系统自动调用该方法,用于内存分配- + (instancetype)allocWithZone:(struct _NSZone *)zone;
// 内存中为一个对象分配内存,并返回实例- + (instancetype)alloc;
// 用于类释放对象实例并释放动态内存- - (void)dealloc;
- // 标明该对象需要释放
- - (void)finalize;
- // 复制一个imutable的对象
- - (id)copy;
// 复制一个mutable的对象- - (id)mutableCopy;
- // <NSCopying>协议后实现的copy方法
- + (id)copyWithZone:(struct _NSZone *)zone;
// <NSCopying>协议后实现的mutablecopy方法- + (id)mutableCopyWithZone:(struct _NSZone *)zone;
- // 类是否存在该方法
- + (BOOL)instancesRespondToSelector:(SEL)aSelector;
// 类是否实现该协议- + (BOOL)conformsToProtocol:(Protocol *)protocol;
// 返回对象中指定的函数指针- - (IMP)methodForSelector:(SEL)aSelector;
// 返回类中指定的函数指针- + (IMP)instanceMethodForSelector:(SEL)aSelector;
// 该对象找不到对应的实现方法时执行该方法,用于抛出异常- - (void)doesNotRecognizeSelector:(SEL)aSelector;
- // 若返回非nil,非self,则将详细转发给该对象,否则继续其他流程
- - (id)forwardingTargetForSelector:(SEL)aSelector;
// 与上一个类似,但该方法可转发给多个对象,是最后一个寻找IML的机会- - (void)forwardInvocation:(NSInvocation *)anInvocation;
// 让重载方有机会抛出函数签名,再由上一个方法执行- - (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector;
- // 同上,该方法为类方法
- + (NSMethodSignature *)instanceMethodSignatureForSelector:(SEL)aSelector;
- // 对象是否支持weak
- - (BOOL)allowsWeakReference UNAVAILABLE_ATTRIBUTE;
// 对象是否支持retain,weak- - (BOOL)retainWeakReference UNAVAILABLE_ATTRIBUTE;
- // 是否为该类的子类
- + (BOOL)isSubclassOfClass:(Class)aClass;
- // 当执行不存在的类方法时,调用该方法,默认返回NO,加上自己的处理后可返回YES
- + (BOOL)resolveClassMethod:(SEL)sel;
// 同上,但该方法为雷芳法- + (BOOL)resolveInstanceMethod:(SEL)sel;
- // hash值
- + (NSUInteger)hash;
// 方法调用者的父类类名- + (Class)superclass;
// 方法调用者的类名- + (Class)class;
// 对象描述,可自己实现- + (NSString *)description;
// 调试对象描述- + (NSString *)debugDescription;
- @end
协议
- @protocol NSObject
- - (BOOL)isEqual:(id)object;
- @property (readonly) NSUInteger hash;
- @property (readonly) Class superclass;
// 返回类名- - (Class)class;
// 是一个指针,地址指向当前类- - (instancetype)self;
- // 单线程,等包含该函数的方法执行完后才执行指定的方法
- - (id)performSelector:(SEL)aSelector;
// 同上- - (id)performSelector:(SEL)aSelector withObject:(id)object;
// 同上- - (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;
- // 对象是否为代理
- - (BOOL)isProxy;
- // 对象是否为指定类
- - (BOOL)isKindOfClass:(Class)aClass;
// 对象是否为成员类- - (BOOL)isMemberOfClass:(Class)aClass;
// 是否实现对应协议- - (BOOL)conformsToProtocol:(Protocol *)aProtocol;
- // 是否需执行对应方法
- - (BOOL)respondsToSelector:(SEL)aSelector;
- //
- - (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;
- @property (readonly, copy) NSString *description;
- @optional
- @property (readonly, copy) NSString *debugDescription;
- @end
望指正
NSObject常用方法的更多相关文章
- Object-c 语法 - NSObject常用方法和反射
NSObject常用方法 - (BOOL)isKindOfClass:(Class)aClass //判断是否为aClass或者aClass的子类的实例,aClass可以通过[类名 class]获取 ...
- iOS-OC-基础-NSObject常用方法
Person *person1 = [[Person alloc]init]; Person *person2 = [[Person alloc]init]; // 可以调用类中的私有方法,但是会有一 ...
- NSObject常用方法和反射
// 类的反射 NSString *str = @"Person"; Class class = NSClassFromString(str); Pers ...
- Objective-C:Foundation框架-常用类-NSObject
NSObject是所有类的基类,其常见用法有: #import <Foundation/Foundation.h> @interface Person : NSObject - (void ...
- NSNumber、NSValue、NSDate、NSObject
注:OC中数组和字典只能存储OC对象不能存放基本数据类型. NSNumber NSNumber可以用来把一个基本数据类型包装成一个NSNumber类型的对象. NSNumber *number = [ ...
- NSObject和反射
如何NSObject和反射 NSObject 常用方法 如何判断 某个对象是否属于某个类或子类 -(BOOL)isKindOfClass:(Class)aClass 判断是否为aClass的实例(不包 ...
- foundation框架之反射机制
概念 例子 一.概念 反射:根据字符串实例话对象或者调用方法 // // main.m // 反射机制 // // Created by apple on 14-3-28. // Copyright ...
- oc语言的Foundation框架(学习笔记1)
Foundation框架 1.Foundation框架介绍 框架是由许多类.方法.函数以及文档按照一定的规则组合的起来的集合. cocoa程序编写主要用到2个框架Foundation和Applicat ...
- OC常用数据类型大全解
UI基础 OC常用数据类型 Block Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.它和传统的函数指针很类似,但是有区别 ...
随机推荐
- 连接器巨头Molex莫仕:替代品厂PK原厂
序言:在中国电子产业,原厂PK替代品厂一直是一个极具话题性.美国在贸易战背景下,挤压中国的发展空间,迫使这一类企业要觉醒.当然受影响的不止中国电子企业,美国电子企业也一样. 在连接器这一领域,Mole ...
- 全网最详细的一篇Flutter 尺寸限制类容器总结
Flutter中尺寸限制类容器组件包括ConstrainedBox.UnconstrainedBox.SizedBox.AspectRatio.FractionallySizedBox.Limited ...
- 端口占用的一种形式 Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8090"] java.net.BindException: Address already in use: JVM_Bind <null>:8090
严重: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8090"]java.ne ...
- getUserMedia API及HTML5 调用手机摄像头拍照
getUserMedia API简介 HTML5的getUserMedia API为用户提供访问硬件设备媒体(摄像头.视频.音频.地理位置等)的接口,基于该接口,开发者可以在不依赖任何浏览器插件的条件 ...
- 一个轻量级的基于 .NET Core 的 ORM 框架 HSQL
HSQL 是一种轻量级的基于 .NET Core 的数据库对象关系映射「ORM」框架 HSQL 是一种可以使用非常简单且高效的方式进行数据库操作的一种框架,通过简单的语法,使数据库操作不再成为难事.目 ...
- Python - 字符串格式化详解(%、format)
Python在字符串格式化的两种方式 % format %,关于整数的输出 %o:oct 八进制%d:dec 十进制%x:hex 十六进制 print("整数:%d,%d,%d" ...
- Python基础-检测密码,一些网站会给密码强加一些规则。
输入一个字符串,检测是否是合法的密码:1)密码必须包含8个字符2)密码只能包含英文字母和数字3)密码至少包含两个数字 首先我讲一下用到的方法 s为字符串 len(s) 求出字符串的长度. list(s ...
- 快速排序python实现总结
背景:数据结构与算法是IT相关的工程师一直以来的基础考察重点,很多经典书籍都是用c++或者java来实现,出于对python编码效率的喜爱,于是取search了一下python的快排实现,发现大家写的 ...
- 添加谷歌拓展程序 vue.js devtools过程中的问题
在用vue做项目过程中,需要用到vue.js devtools,在从github上面clone下来代码,然后再npm install ,过程报错,然后更新npm包也是会有问题,以下是install的问 ...
- 曹工说mini-dubbo(1)--为了实践动态代理,我写了个简单的rpc框架
相关背景及资源: 之前本来一直在写spring源码解析这块,如下,aop部分刚好写完.以前零散看过一些文章,知道rpc调用基本就是使用动态代理,比如rmi,dubbo,feign调用等.自己也就想着试 ...