gpt4 book ai didi

ios - 嵌套的 Cocoa Touch 框架

转载 作者:可可西里 更新时间:2023-11-01 03:58:02 24 4
gpt4 key购买 nike

我正在寻找一种能够生成框架的方法,这些框架具有子框架,在运行时不会相互干扰。下面的插图最能说明这个想法。

enter image description here

假设每个版本的 JSON Parser 框架都不兼容

我一直在尝试大量方法来实现上述目标,但每次都失败了。最有前途的是伞形框架,但 Apple 不仅不鼓励使用它们(我不清楚为什么),而且它们似乎没有按预期工作。

发生的情况是,如果我创建一个带有嵌入式 Framework A 的应用程序,它本身嵌入了 JSON Parser framework v1.0,一切似乎都运行良好。但是,一旦我将 JSON Parser framework v3.0 添加到 App 并将 App 链接到它,Framework A 就开始使用 JSON Parser framework v3。 0 在运行时而不是驻留在其中的 v1.0。假设它们彼此不兼容,这可能会破坏 Framework A

添加 Framework B 也是如此,但在运行时选择哪个实现似乎是随机的。

是否可以创建具有嵌入式 JSON 解析器框架 v1.0 并且在这种情况下可以安全使用的 Framework A?我发现很难相信没有办法实现这一点,但我找不到让它工作的方法,并开始怀疑它是否真的可能:(

最佳答案

您没有详细说明如何构建框架,所以这只是瞎猜。

我假设您将嵌入式框架的“动态库安装名称基础”设置设置为 @rpath。然后,在您的嵌入框架中,从“Runpath search path”设置中删除 @executable_path 相关选项(这是应用程序,这就是它首先找到“全局”框架的原因)。这应该会让事情如您所愿。

您可以考虑的另一种方法是将您正在使用的框架的 3 个版本捆绑在 single framework bundle 中。 .

最后,您还可以考虑手动链接(参见 this post ,其中定义了 _loadPluginAtLocation 方法)。

希望这对您有所帮助。

关于ios - 嵌套的 Cocoa Touch 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26447179/

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