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可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.它和传统的函数指针很类似,但是有区别 ...
随机推荐
- 设计模式-11享元模式(Flyweight Pattern)
1.模式动机 在面向对象程序设计过程中,有时会面临要创建大量相同或相似对象实例的问题.创建那么多的对象将会耗费很多的系统资源,它是系统性能提高的一个瓶颈. 享元模式就是把相同或相似对象的公共部分提取出 ...
- OpenCV3入门(十二)角点检测
1.角点介绍 角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测.图像匹配.视频跟踪.三维建模和目标识别等领域中,也称为特征点检测.在图像中角 ...
- 7-11 jmu-python-分段函数&数学函数 (15 分)
本题要求计算下列分段函数f(x)的值(x为从键盘输入的一个任意实数): 输入格式: 直接输入一个实数x 输出格式: 在一行中按“f(x)=result”的格式输出,其中x与result都保留三位小数. ...
- 将list集合按指定长度进行切分,返回新的List<List<??>>集合
Lists.partition public class testList { @Test public void test(){ List<Integer> numList = List ...
- Android开发 run的时候出现waiting for debugger的情况,及解决问题
出现原因:不清楚,大概推测是因为缓存没有清除干净 解决方法: 方法一. 重新启动模拟器 好像就点右上角的x符号是没有用的,因为会保存状态,在关闭之后还要点击Cold Boot Now,冷启动,才会把之 ...
- jdbc对 数据库的数据进行增删改(两个类)
1.方法类 package com.com; import java.sql.Connection;import java.sql.DriverManager;import java.sql.Resu ...
- 组件(4):使用slot进行内容分发
组件的作用域(一) 父组件模板的内容在父组件作用域内编译:子组件模板的内容在子组件作用域内编译. 父子组件的编译相互独立,编译时只能使用各自作用域中的属性和方法,例如,你不可以在父组件模板内,将一个指 ...
- 牛客网剑指offer第34题——找到第一个只出现一次的字符
题目如下: 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 先上代码: class ...
- SQL数据库中的增删改查总结1
一.增:有2种方法 1.使用insert插入单行数据: 语法:insert [into]<表名> [列名] values <列值> 例:insert into Strdents ...
- NTP网络时钟服务器品牌
NTP网络时钟服务器品牌 在科技的不断进步和发展下,时钟的种类和功能也在发生着变化,以满足人们的各种需求,时钟从原始的机械时钟发展成具有多钟功能的时钟.而时钟服务器主要是给时钟提供时间信息的,时钟服务 ...