iOS RunTime:用例

iOS RunTime:用例,第1张

概述我知道iOS Runtime很强大,我有一个问题:我们应该在哪里使用运行时? 例如,我发现许多文章将讨论关于课堂和课程的内容.方法调整.在哪种情况下我应该使用它? 我也谷歌它发现它被广泛用于越狱开发.但是,我是一个非越狱的开发者,请不要越狱〜 谢谢! 这是一个非常普遍的问题.运行时是一个与您的程序链接的库,它实现了Objective-C的一部分,因此它可以显示在任何地方.如果你不得不问,不要使用它 我知道iOS Runtime很强大,我有一个问题:我们应该在哪里使用运行时?

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

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

谢谢!

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

混写

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

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

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

动态方法(有点)

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

关联参考

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

Google it.

内省

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

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

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

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

#include <objc/runtime.h>#import <Foundation/Foundation.h>@interface A: NSObject@end@implementation AvoID pileOfPoo(ID self,SEL _cmd) {    NSLog(@"          总结       

以上是内存溢出为你收集整理的iOS RunTime:用例全部内容,希望文章能够帮你解决iOS RunTime:用例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1075826.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存