`
tonynju
  • 浏览: 74509 次
  • 性别: Icon_minigender_1
  • 来自: 浙江嘉善
社区版块
存档分类
最新评论

objective c的runtime特性

阅读更多

 

使用objective c的runtime特性动态增加字段。

在category中特别有用,可以实现在不增加变量的情况下达到成员变量类似的效果。

示例:

- (BOOL)isRobot {

 

  NSNumber *boolNum = objc_getAssociatedObject(self, kPlayerIsRobotKey);

  if (boolNum == nil) {

    return NO;

  } else {

    return [boolNum boolValue];

  }

}

 

- (void)setIsRobot:(BOOL)isRobot {

 

  objc_setAssociatedObject(self, kPlayerIsRobotKey, [NSNumber numberWithBool:isRobot], OBJC_ASSOCIATION_RETAIN_NONATOMIC);

}

分享到:
评论

相关推荐

    【objective-c简易教程】IANRuntimeStudy.zip

    简而言之,Objective-C Runtime是一个将C语言转化为面向对象语言的扩展。 我们将C++和Objective进行对比,虽然C++和Objective-C都是在C的基础上加入面向对象的特性扩充而成的程序设计语言,但二者实现的机制差异很大...

    RuntimeObject.zip

    Objective-C Runtime是一个将C语言转化为面向对象语言的扩展。 我们将C++和Objective进行对比,虽然C++和Objective-C都是在C的基础上加入面向对象的特性扩充而成的程序设计语言,但二者实现的机制差异很大。C++是...

    RunTIme在iOS中的应用

    代码描述了category与associative作为objective-c的扩展机制的两个特性,和Runtime的动态机制的应用。

    iOS Runtime详解(新手也看得懂)

    Objective-C 扩展了 C 语言,并加入了面向对象特性和 Smalltalk 式的消息传递机制。而这个扩展的核心是一个用 C 和 编译语言 写的 Runtime 库。它是 Objective-C 面向对象和动态机制的基石。 Objective-C 是一个动态...

    iOS中Runtime的几种基本用法记录

    Objective-C拥有相当多的动态特性,这些特性在运行程序时候发挥作用. Objctive-C Runtime是个运行时的库,由C和汇编实现。通过Runtime封装的C结构体和函数可以在程序运行时创建、检查和修改类以及对象及其方法,甚至...

    GCRuntimeDemo:本Demo主要是使用OC的Runtime特性来提高项目的性能和安全性

    本Demo主要是使用OC的Runtime特性来提高项目的性能和安全性 我们可以运用runtime机制做一些事情,动态的获取类的一些属性和方法,动态添加方法和方法交换。 1、获取类名 动态获取类名,使用class_getName(Class)就...

    class-dump-3.5.tar

    用来dump目标文件的class信息的工具。它利用Objective-C语言的runtime的特性,将存储在mach-O文件中的@interface和@protocol信息提取出来,并生成对应的.h文件。

    -runtime-:使用Runtime跳转到指定页面:应用场景推送

    根据规则跳转到指定的界面(runtime实用篇一) ...利用runtime动态生成对象、属性、方法这特性,我们可以先跟服务端商量好,定义跳转规则,比如要跳转到A控制器,需要传属性id、type,那么服务端返回字典给我,里面有控制

    iOS消息发送和转发示例详解

    之所以能具备这种特性,离不开 Runtime 这个库。Runtime 很好的解决了如何在运行时期找到调用方法这样的问题。下面话不多说了,来一起学习学习吧。 消息发送 在 Objective-C 中,方法调用称为向对象发送消息: /...

    leetcode答案-iOS-:在网上找的一些iOS面试资料

    iOS面试题---Objective_C语言特性相关问题 3、2018 iOS面试题---runtime相关 4、2018 iOS面试题---算法相关 5、2019 iOS面试题-----内存管理、自动释放池与循环引用 6、2019 iOS面试题-----Block原理、Block变量截获...

    swift-JYRouter

    基于runtime实现的iOS路由框架。特性:兼容性: 支持Objective-C和Swift。易用性: 支持属性自动赋值和完成回调。低耦合: 无需继承基类或遵循协议,即插即用。适用性: 支持UIViewController之外其他类的跳转

    leetcode题库-JXInterview:iOSer面试

    leetcode题库 JXInterview Interview for iOSer 软实力 沟通能力 价值观 学习方式 自我总结,模拟面试 ...排序:冒泡、选择、插入、希尔、归并、快速 ...Objective-C 2.0 软技能 iOS 与 OSX 高级编程 LeetCode 文章分享

    TTPatch:热修复,热更新,JS代码动态下发,动态创建类

    功能特性 备注限制 支持手动设置系统 如WKWebView一些系统级block缺失签名,无法动态调用 替换指定ObjectC方法实现 实例/静态方法替代替换实现 动态创建方法供Native / Js调用 需预先方法签名 支持block ObjectC...

    iOS应用逆向工程:分析与实战

    5.1.1 Objective-C 语言的特性 94 5.1.2 MobileSubstrate 96 5.2 tweak 的编写套路 97 5.2.1 灵感的来源 98 5.2.2 分析文件,寻找切入点 99 5.2.3 定位目标函数 102 5.2.4 测试函数功能 104 5.2.5 ...

Global site tag (gtag.js) - Google Analytics