@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常用方法的更多相关文章

  1. Object-c 语法 - NSObject常用方法和反射

    NSObject常用方法 - (BOOL)isKindOfClass:(Class)aClass //判断是否为aClass或者aClass的子类的实例,aClass可以通过[类名 class]获取 ...

  2. iOS-OC-基础-NSObject常用方法

    Person *person1 = [[Person alloc]init]; Person *person2 = [[Person alloc]init]; // 可以调用类中的私有方法,但是会有一 ...

  3. NSObject常用方法和反射

    // 类的反射    NSString *str = @"Person";    Class class = NSClassFromString(str);        Pers ...

  4. Objective-C:Foundation框架-常用类-NSObject

    NSObject是所有类的基类,其常见用法有: #import <Foundation/Foundation.h> @interface Person : NSObject - (void ...

  5. NSNumber、NSValue、NSDate、NSObject

    注:OC中数组和字典只能存储OC对象不能存放基本数据类型. NSNumber NSNumber可以用来把一个基本数据类型包装成一个NSNumber类型的对象. NSNumber *number = [ ...

  6. NSObject和反射

    如何NSObject和反射 NSObject 常用方法 如何判断 某个对象是否属于某个类或子类 -(BOOL)isKindOfClass:(Class)aClass 判断是否为aClass的实例(不包 ...

  7. foundation框架之反射机制

    概念 例子 一.概念 反射:根据字符串实例话对象或者调用方法 // // main.m // 反射机制 // // Created by apple on 14-3-28. // Copyright ...

  8. oc语言的Foundation框架(学习笔记1)

    Foundation框架 1.Foundation框架介绍 框架是由许多类.方法.函数以及文档按照一定的规则组合的起来的集合. cocoa程序编写主要用到2个框架Foundation和Applicat ...

  9. OC常用数据类型大全解

    UI基础 OC常用数据类型 Block Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.它和传统的函数指针很类似,但是有区别 ...

随机推荐

  1. Dart 运行速度测评与比较

    引言 Dart 是一门优秀的跨平台语言,尽管生态方面略有欠缺,但无疑作为一门编程语言来说,Dart 是很优美,很健壮的,同时也引入了一些先进的编程范式,值得去学习. 测试内容 现在,我们就来测评一下D ...

  2. node--静态文件托管,路由,模板引擎

    1.路由 路由是由一个URI和一个特定的HTTP方法(GET/POST)组成的 涉及到应用如何响应客户端对某个网站节点的访问 2.ejs 3.get/post 1)get获取数据 通过Url类中的qu ...

  3. d3.js ---画坐标轴

    画坐标轴 //使用d3的svg的axis()方法生成坐标轴 var x_axis = d3.svg.axis().scale(scale_x), y_axis = d3.svg.axis().scal ...

  4. http请求缓存头详解

    缓存的作用:1.减少延迟(页面打开的速度).2.降低服务器负载(先取缓存,无缓存在请求服务器,有效降低服务器的负担).3.保证稳定性(有个笑话是手机抢购时为了保证服务器的稳定性,在前端写个随机数限制百 ...

  5. 前端ps中常用的操作

    昨天,ui给了个psd图,让写成网页.额,要自己切图.很久之前,操作的还凑乎.但是,好久了,都忘了.所以,打算自己记个笔记,方便以后查看. 首先,打开ps就先来设置一下ps的单位啦点击最上面的一行的编 ...

  6. vue+element 表单封成组件(1)

    作为一名刚接触vue不到一个月的菜鸟,思想还没有从操作DOM转变为数据驱动,看vue的代码处处别扭.组里为了让我熟悉vue交给了我一个将element 表单封装成组件的练手任务.由于开发过程中遇到的表 ...

  7. python-面向对象小结

    面向对象 小结 1:面向对象:就是一种编程思想 简称oop,指挥某某完成能完成的功能 2:面向对象与面向过程的优缺点 : 面向过程: 优点: 复杂问题简答化(一步一步解决), 流程化, 缺点:机械化 ...

  8. 怎么查看linux文件夹下有多少个文件(mac同样)

    查看目录下有多少个文件及文件夹,在终端输入 ls | wc -w 查看目录下有多少个文件,在终端输入 ls | wc -c 查看文件夹下有多少个文件,多少个子目录,在终端输入 ls -l |wc -l ...

  9. 【colab pytorch】使用tensorboard可视化

    import datetime import torch import torch.nn as nn import torch.nn.functional as F import torch.opti ...

  10. 【S2-053】Struts2远程命令执行漏洞(CVE-2017-12611)

    继S2-052之后,Apache Struts 2再次被曝存在远程代码执行漏洞,漏洞编号S2-053,CVE编号CVE-2017-1000112. 当开发人员在Freemarker标签中使用错误的构造 ...