【问题标题】:iOS ARC enabled custom framework issue for iOS4.3iOS ARC 为 iOS4.3 启用了自定义框架问题
【发布时间】:2025-11-21 09:15:01
【问题描述】:

我创建了一个自定义 ios 框架,我打算在没有源的情况下分发它。 以前它应该支持最低 iOS 5 的设备。但现在决定启用对 iOS 4.3 的支持

现在我面临两个主要问题。

  1. 我的框架启用了 ARC。 开发人员可以在启用 ARC/禁用 ARC 的项目中使用该框架吗?如何使用。

  2. 我使用 NSJSON 因为这仅在 iOS 5 之后才可用。我想我必须使用 JSON kit 之类的东西。

  3. 基础 sdk 使用情况。 由于我使用 ARC,如果我决定使用 baseSDK 作为 4.3,xCode 会将 libarc 与我的框架一起附加。

请指教。

【问题讨论】:

    标签: ios frameworks automatic-ref-counting


    【解决方案1】:

    您不必担心 ARC。这是您的库的实现细节。客户可以使用或不使用 ARC。

    Base SDK 应始终是最新的。

    部署目标是你支持的最低版本:iOS 4.3

    关于您的 JSON 库,无论如何可用时使用NSJSONSerialization。如果可用,您可以检查版本或更好的类,然后“分支”到适当的解析器:

    Class NSJSONSerializationClass = NSClassFromString(@"NSJSONSerialization");
    NSError* error;
    id jsonObject;
    if (NSJSONSerializationClass == nil) {
        // No NSJSONSerialization class, use custom JSON parser:
        jsonObject = [MyJSONParser parseJSONData:data options:0 error:&error]; 
    }
    else {
        jsonObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:error];
    }
    

    【讨论】:

      【解决方案2】:

      关于 JSON,iOS 4.3 Arc Support 4.3 支持 Arc,最好使用 JSONKit 而不是 NSJSON 以实现向后兼容性。

      【讨论】:

      • 那些可能想要将框架包含在非 arc 项目中的开发人员怎么样?会不会有问题?请记住,框架不包含发布中的源代码。