gpt4 book ai didi

ios - 你会为 objective-c++ 静态库启用 ARC 吗?

转载 作者:行者123 更新时间:2023-11-28 18:36:56 25 4
gpt4 key购买 nike

我想在我的 Objective-C 应用程序中使用 C++ 库,为此,我有一个将使用 Objective-C++ 的中间静态库(.mm 文件而不是 .m)。反过来,静态库将由我的 iOS 应用程序使用。

在 Objective-C++ 库中,启用 ARC 是否安全,还是我应该让我的 Objective-C 应用程序处理它?<​​/p>

最佳答案

TL;DR 答案:选择您喜欢的一个,但最好同时支持两者。如果您想要 ARC,请使用它。如果您不想要 ARC,请不要使用它。 (从您的问题推断,您很可能是初学者 - 在这种情况下,我建议您好好学习手动内存管理,这样您就知道并理解引用计数的内容和原因,然后您可以稍后在生产代码中过渡到使用 ARC。)


如果您分发二进制静态库文件本身 (MyLibrary.a),则没有任何区别。正如@nil 已经指出的那样:ARC 是一种编译时 技术(以过于简化的方式进行解释,它只是插入对retainreleaseautorelease。它对链接时间没有影响,更不用说运行时了。因此,一旦代码被编译,没有人可以判断您是否使用了 ARC,因此您的库的用户也无需担心这一点。

但是,如果您分发您的库的源代码(我强烈鼓励这样做),那么用户需要知道您是否将其设计为在 ARC 下使用或不在 ARC 下使用。因此,一次决定然后保持一致——您可能更喜欢 ARC 代码以便于使用和编写,或者更喜欢非 ARC 代码以便向后兼容。理想的态度是支持 ARC 和非 ARC 编译,使用 special macro __has_feature(objc_arc) 的编译时特征检测。 .

关于ios - 你会为 objective-c++ 静态库启用 ARC 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17004446/

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