HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iOS RunTime:用例大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_944_2@
我知道iOS Runtime很强大,我有一个问题:我们应该在哪里使用运行时?

例如,我发现许多文章将讨论关于课堂和课程的内容.方法调整.在哪种情况下@R_928_10@R_197_11289@@用它?

我也谷歌它发现它被广泛用于越狱开发.但是,我是一个非越狱的开发者,请不要越狱〜

谢谢!

@H_944_2@

解决方法

这是一个非常普遍的问题.运行时是一个与您的程序链接的库,它实现了Objective-C的一部分,因此它可以显示在任何地方.如果你不得不问,不要使用它.但是,这里有一些常见的用途:

混写

Swizzling是两种方法的标识符的交换,因此它们指向彼此的实现.这两种方法仍然可用.

使用swizzling而不是类别来保留方法的原始实现是有用的,并避免让两个类重写相同的方法(结果将是未定义的).

有关危险列表,请参阅https://stackoverflow.com/a/8636521/412916.

动态方法(有点)

https://stackoverflow.com/a/13646650/412916

关联参

关联引用是一种在不更改代码的情况下将实例变量添加到对象的方法.取消分配对象时,将自动删除关联引用.

Google it.

内省

反思类的属性.例如,在JSON和模型的普通类之间进行映射.我想MantleOvercoat包装器都是这样的例子.

你应该阅读Objective-C Runtime Programming Guide.

使用表情符号作为方法名称

这可能是最重要的用途.代码不是我的,我不记得原作者.

#include <objc/runtime.h>
#import <Foundation/Foundation.h>

@interface A: NSObject
@end

@implementation A

void piLeofPoo(id self,SEL _cmd) {
    NSLog(@"
@H_944_2@
本图文内容来源于网友网络收集整理提供,作为学习参使用,版权属于原作者。@H_944_2@