美文网首页
iOS 运行时机制

iOS 运行时机制

作者: 难却却 | 来源:发表于2017-02-04 15:04 被阅读39次

转自 http://www.cnblogs.com/cqcnblogs/p/5787355.html

一 , Objective-C运行时定义了几种重要的类型。

Class:定义Objective-C类

Ivar:定义对象的实例变量,包括类型和名字。

Protocol:定义正式协议。

objc_property_t:定义属性。叫这个名字可能是为了防止和Objective-C 1.0中的用户类型冲突,那时候还没有属性。

Method:定义对象方法或类方法。这个类型提供了方法的名字(就是**选择器**)、参数数量和类型,以及返回值(这些信息合起来称为方法的**签名**),还有一个指向代码的函数指针(也就是方法的**实现**)。

SEL:定义选择器。选择器是方法名的唯一标识符。

IMP:定义方法实现。这只是一个指向某个函数的指针,该函数接受一个对象、一个选择器和一个可变长参数列表(varargs),返回一个对象

二 ,class_copyPropertyList与class_copyIvarList区别

class_copyPropertyList:

通过类名获得类的属性变量。

class_copyIvarList

通过类名获得类的实例变量。

也就是说:

class_copyPropertyList获得的是由@property修饰过的变量,

class_copyIvarList获得的是class_copyPropertyList修饰的以及在m文件的中@implementation内定义的变量

eg:

//.h

@interface Model : NSObject

@property (nonatomic,copy) NSString *sex;

@property (nonatomic,copy) NSString *name;

@property (nonatomic,assign) NSInteger age;

@property (nonatomic,strong) NSDictionary *imgCode;

@end

//.m

@interface Model ()

@property (nonatomic,copy) NSString *Id;

@end

@implementation Model {

NSInteger _index;

}

@end

//使用的时候

unsigned int propertiesCount =0;

unsigned int ivarsCount =0;

objc_property_t *properties = class_copyPropertyList(Model, &propertiesCount);

Ivar *ivars = class_copyIvarList(Model, &ivarsCount);

则 propertiesCount = 5

ivarsCount = 6

相关文章

  • Runtime(运行时) 入门

    1.什么是Runtime? runtime是iOS 的一种运行时机制. 是iOS ...

  • 使用Runtime的API

    runtime 的运行时机制 runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心...

  • iOS中的反射机制

    https://github.com/starainDou 欢迎点星 iOS反射机制:运行时选择创建哪个实例,并动...

  • Android - base - 运行时权限获取

    Android 6.0 引入的运行时权限机制 大纲 运行时权限机制简介 在程序运行时申请权限 #运行时权限机制简介...

  • 国内一线互联网公司内部面试题库

    iOS基础 RunTime 1、RunTime简称运行时,就是系统在运行的时候的一些机制,其中最主要的是消息机制。...

  • RunTime

    前言 RunTime简称运行时机制,其实OC就是一种运行时机制(消息机制是运行时机制中最重要的机制) 消息机制:任...

  • runtime-属性与变量

    序言 runtime简称运行时,就是在程序运行时的一些机制,在iOS开发中runtime的特性使得oc这门语言具有...

  • 关于OC 底层想聊聊

    OC 作为一种经典的运行时动态语言, 底层的动态运行时、消息机制另无数iOS开发者痴迷. Runtime: 结构模...

  • Runtime

    现在这个ios遍地跑的年代,不会点运行时都不好意思说自己是ios程序员了! OC函数调用的运行时机制 对于C语言,...

  • iOS数据埋点统计方案选型

    iOS数据埋点统计方案选型(附Demo):运行时Method Swizzling机制与AOP编程(面向切面编程) ...

网友评论

      本文标题:iOS 运行时机制

      本文链接:https://www.haomeiwen.com/subject/rwnjittx.html