gpt4 book ai didi

iphone - 将应用程序静态链接到我自己的自定义 obj-c 运行时有多简单?

转载 作者:行者123 更新时间:2023-12-03 20:47:05 25 4
gpt4 key购买 nike

我一直在研究运行时,并想出了一个替代 objc_allocateClassPair/objc_registerClassPair 的方法来生成匿名类。

匿名类对于我正在处理的事情来说非常方便,但我担心,因为它们依赖于运行时的不透明数据类型的实现方式(据我所知,运行时是一个共享库,可能会在操作系统版本之间更改这些类型的布局),这会带来麻烦。

更一般地说,运行时是开源的这一事实似乎为该语言开辟了一定的创造力潜力......

静态链接到我修改过的运行时而不是共享的运行时有多简单?我是否必须扰乱编译器,或者它更像是链接到任何其他库。

也对这可能如何影响 App Store 审批感兴趣。

最佳答案

很可能,这最终带来的麻烦超过了它的值(value)。当然,您不想替换系统框架正在使用的运行时。这不仅可能是不可能的(或者肯定非常困难),而且很可能会使您的应用程序速度慢得难以忍受,因为有许多优化只能在系统级别完成。

这样做可能需要大量的编译器和链接器恶作剧。你还会遇到边界问题;是一个调用站点,对您的代码的调用或对系统的调用(如果您尝试并行运行两个运行时——这可能是不可能的)。

您的评估绝对正确,即依赖当前运行时中元数据的布局是不行的。在 Obj-C 2.0 过渡中,所有元数据都放在 API 后面,专门是为了允许元数据发生显着变化,而不会破坏[正确编写的]应用程序。

如果您确实想要为类中的某些功能子集使用新的/不同的运行时模型,那么最好尽可能将其与系统运行时隔离。新的根类可能很有趣,但与框架类的任何混合都可能充满脆弱性。

关于iphone - 将应用程序静态链接到我自己的自定义 obj-c 运行时有多简单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4984896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com