(译)Objective-C的动态特性
这是一篇译文,原文在此,上一篇文章就是受这篇文章启发,这次干脆都翻译过来。 过去的几年中涌现了大量的Objective-C开发者。有些是从动态语言转过来的,比如Ruby或Python,有些是从强类型
“”
[array insertObject:foo atIndex:5]; objc_msgSend(array, @selector(insertObject:atIndex:), foo, 5);
typedef struct objc_object {Class isa;
- (id)doSomethingWithInt:(int)aInt{}
其他运行时的方法
Class stringclass = NSClassFromString(@"NSString");
NSString *myString = [stringclass stringWithString:@"Hello World"];
- (void)parseObject:(id)object {for (id data in object) {if ([[data type] isEqualToString:@"String"]) {[self parseString:[data value]]; } else if ([[data type] isEqualToString:@"Number"]) {[self parseNumber:[data value]];} else if ([[data type] isEqualToString:@"Array"]) {[self parseArray:[data value]];}} } - (void)parseObjectDynamic:(id)object {for (id data in object) {[self performSelector:NSSelectorFromString([NSString stringWithFormat:@"parse%@:", [data type]]) withObject:[data value]];} } - (void)parseString:(NSString *)aString {} - (void)parseNumber:(NSString *)aNumber {} - (void)parseArray:(NSString *)aArray {}
#import <objc/runtime.h>@interface NSMutableArray (LoggingAddObject) - (void)logAddObject:(id)aObject; @end@implementation NSMutableArray (LoggingAddObject)+ (void)load {Method addobject = class_getInstanceMethod(self, @selector(addObject:));Method logAddobject = class_getInstanceMethod(self, @selector(logAddObject:));
} - (void)logAddObject:(id)aobject { [self logAddObject:aObject]; NSLog(@"Added object %@ to array %@", aObject, self); } @end
object_setClass(myObject, [MySubclass class]);
+ (BOOL)resolveInstanceMethod:(SEL)aSelector {if (aSelector == @selector(myDynamicMethod)) {class_addMethod(self, aSelector, (IMP)myDynamicIMP, "v@:");return YES;}return [super resolveInstanceMethod:aSelector]; }
IMP myIMP = imp_implementationWithBlock(^(id _self, NSString *string) {NSLog(@"Hello %@", string); }); class_addMethod([MYclass class], @selector(sayHello:), myIMP, "v@:@");
转载于:https://www.cnblogs.com/zsw-1993/p/4879854.html
(译)Objective-C的动态特性相关推荐
- [译] Swift 中的动态特性
原文地址:Dynamic Features in Swift 原文作者:Mike Finney 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:iWesli ...
- 测量功率MOS,IGBT动态特性的双脉冲方法
▌01 动态特性 近期,关于用于全国大学生智能车节能信标组的 100W无线充电系统 正在测试.使用 MOS半桥 作为发送线圈的功率驱动电路.由于半桥电路中MOS管的功率消耗主要发生在开关管的动态切 ...
- SP-45ML光电二极管放大电路及其动态特性
■ 实验背景 在 SP-45ML光电管 放大器模块中,给 SP-45ML光电二极管 增加了基于 AD8606 的运放小板.可以对 LED的电流与光强之间的关系 进行测量.大体可以看到输出的电压与光强之 ...
- 【Groovy】Groovy 动态语言特性 ( Groovy 语言与 Java 语言执行效率对比 | 以动态特性编译的 Groovy 类 | 以静态特性编译的 Groovy 类 )
文章目录 一.以动态特性编译的 Groovy 类 二.Groovy 语言与 Java 语言执行效率对比 三.以静态特性编译的 Groovy 类 一.以动态特性编译的 Groovy 类 Groovy 类 ...
- 动态性是Java的特性吗_Java的动态特性有哪些?
Java的动态特性有两种,一是隐式的:另一种是显示的.隐式的(implicit)方法就是当程式设计师用到new 这个Java 关键字时,会让类别载入器依需求载入您所需要的类别,这种方式使用了隐式的(i ...
- PHP语言的动态特性-Going dynamic with PHP
原文链接: http://www.ibm.com/developerworks/xml/library/os-php-flexobj/ PHP5引入的面向对象的编程特性显著的提升了PHP语言的层次.不 ...
- MOSFET开通特性(2)——动态特性
2.MOSFET的动态特性 2.1驱动电路 驱动电路的暂态模型 Rg上的电压波形: 栅极的输入特性为容性,开通时充电,关断时放电:Rg起到限流和控制开关速度的作用. 2.2栅极的充电曲线及开通关断过程 ...
- MATLAB自动控制:分析系统动态特性(超调量,上升时间,峰值时间,调整时间)和静态特性(稳态误差)
之前看到过一篇介绍已知传递函数分析系统动态特性和静态特性的博客,但那个代码只能分析标准形式的传递函数,最终响应值为1,然而,如果传递函数化为标准形式之后分子上还有常系数,则其最终响应值不为1,用原代码 ...
- 步进电机基础(6.2)-步进电机的特性测量方法-动态特性的测量法和步距角度精度的测量
步进电机基础(6.2)-步进电机的特性测量方法-动态特性的测量法和步距角度精度的测量 前言 基本信息 前言说明 6.2 动态特性的测量法 1 . 滑轮平衡法 2 . 磁滞制动法 3 . 利用扭力棒转矩 ...
最新文章
- FileSystem close Exception
- 东华大学java_东华大学2020秋《Java程序设计》期末大作业
- JS提交表单页面不跳转、JS下载、动态创建from
- java中集合的排序_Java中集合排序的两种方法
- numpy—np.random.multivariate_normal
- xcode环境变量设置(转载)
- 《power BI 视频7》六合一图表案例
- 8uftp,8uftp连接不上怎么办
- IDEA 插件开发 创建一个控制台窗口
- 单片机STM32入门——(2)按键控制
- 计算机网络接口 rj45类型,网卡:网线接口类型(RJ45/BNC/AUIFDDI/ATM接口) -电脑资料...
- arcgis裁剪后发现部分矢量缺失
- Tegra3 1080p高清播放时电源管理方式和功耗分析
- Zookeeper简介,架构,单机版搭建
- 删除SATA硬盘安全删除硬件图标
- 优秀的选择 从年货节“走马灯”看天猫的H5创意
- php试戴,全口义齿制作流程,以及试戴的检查步骤(转)
- Kivy转apk——使用打包虚拟机(亲测~)
- 使用C51单片机实现《两只老虎》
- 怎么做能打印发票的软件?
热门文章
- Java8--Lambda表达式对List集合操作
- 操作系统(四)操作系统的运行机制
- 以太坊智能合约安全入门了解一下(下)
- 揭开知识库问答KB-QA的面纱1·简介篇
- JZOJ 1422. 猴子摘桃
- php连接mysql并查询表数据,php连接mysql并查询数据怎么实现
- [BZOJ 2243] 染色
- 基于深度学习的目标检测方法综述
- 合肥工业大学网络程序设计实验报告_【院校推荐】2020合肥工业大学计算机考研备考指导及报考分析...
- gdi画平滑直线_石膏几何体不会画?那是你没有画过这些,学会画石膏很简单,收藏...