【问题标题】:Running a project build in iOS5/xcode 4.2 on iOS simulator 4.2/xcode3.2.5在 iOS 模拟器 4.2/xcode3.2.5 上运行 iOS5/xcode 4.2 中的项目构建
【发布时间】:2011-11-03 08:18:42
【问题描述】:

我在 xcode 4.2 中使用 base sdk 5.0 创建了一个项目。在创建项目时,我没有检查显示的所有 3 个选项,当我们在 iOS 5.0 上创建新项目时,即。故事板,使用 ARC 并包含单元测试。编写完代码后,我想在 xcode 3.2.5/iOS 4.2 上运行它,但它给出了错误,因为 iOS 5 使用 @autoreleasepool 而不是 NSAutoreleasePool。我将如何在 iOS4.2 上运行它

【问题讨论】:

    标签: objective-c ios ios4 ios5


    【解决方案1】:

    使用旧的 main.m 怎么样?

    #import <UIKit/UIKit.h>
    
    int main(int argc, char *argv[])
    {
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
        int retVal = UIApplicationMain(argc, argv, nil, nil);
        [pool release];
        return retVal;
    }
    

    另一件事。 "storyboards" 和 "ARC" 仅在 iOS 5 中支持。所以如果你想在 iOS4 中运行,这也是一个问题。

    总结: 如果您想要向后兼容,请在您想要支持的最低版本上编写您的程序,这样就可以了。使用旧的 main.m,保留而不是强,没有故事板或 ARC,它适用于 iOS >= 4。

    【讨论】:

    • 可以说我使用的是旧的包含 NSAutoreleasePool 的 main.m,而不是使用 @autoreleasepool 的那个。但另一个问题与属性声明中的强弱关键字有关。它们仅在 sdk 5.0 中可用。所以,我也必须改变它们。就故事板和 ARC 而言,我没有在 sdk 5.0 中使用它们。因此,它们不会在 4.0 或 4.2 中产生任何问题。
    • 使用保留而不是强 - 我认为这没有问题。无论如何,现在有什么问题?你知道什么是错的以及如何解决它。
    • 问题与向后兼容性有关。仅仅通过做这2件事,我是否能够在iOS4或4.2上部署使用iOS5编写的代码?
    • 如果您想要向后兼容,请将您的程序写在您想要支持的最低版本上,这样就可以了。使用旧的 main.m,保留而不是强,没有故事板或 ARC,它适用于 iOS >= 4。
    • 谢谢哥们。这就是我要问的全部
    猜你喜欢
    • 2011-12-10
    • 2011-12-31
    • 2012-02-14
    • 1970-01-01
    • 2012-04-26
    • 2011-12-15
    • 2011-12-19
    • 1970-01-01
    • 2011-12-30
    相关资源
    最近更新 更多