gpt4 book ai didi

objective-c - Swift 与 ARC 之前的 Objective-C 不兼容吗?

转载 作者:IT王子 更新时间:2023-10-29 05:50:06 25 4
gpt4 key购买 nike

我开始将 Swift 文件添加到一个不使用 ARC 的非常大的遗留 Objective-C 项目。

当我编译项目时,我会收到针对 ProjectName-Swift.h 桥头文件中发出的每个属性的警告:

  • 未指定“分配”、“保留”或“复制”属性 - 假定为“分配”
  • 默认属性“assign”不适用于非 GC 对象

看起来 Swift 正在发布基于 ARC 的 Objective-C 代码。

这是这个特定版本的 Swift 中的限制/错误,还是 Swift 设计为仅适用于 ARC 代码?

最佳答案

您可以混合使用 ARC 和非 ARC 代码。所有 ARC 编译代码所做的就是自动为用户管理其内存。您应该为项目启用 ARC,然后使用 -fno-objc-arc 为单个文件禁用 ARC,或者使用 -fobjc-arc 为 Swift 文件启用 ARC(这可能不是必需的,因为编译器可能会自动添加它)。 Swift 代码最终编译为使用相同的 Objective C 运行时,编译器插入的 ARC 调用与在 Objective C 中相同。编译后,ARC 和非 ARC 代码的行为相同。

关于objective-c - Swift 与 ARC 之前的 Objective-C 不兼容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24097817/

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