什么iOS版本需要使用@autoreleasepool?

Eon*_*nil 6 cocoa-touch version nsautoreleasepool ios

当我@autorelease在iOS 4.3.x上使用关键字运行代码时,它会抛出此错误.

dyld: lazy symbol binding failed: Symbol not found: _objc_autoreleasePoolPush
  Referenced from: /Users/Eonil/Library/Application Support/iPhone Simulator/4.3.2/Applications/3782382E-293A-4D5E-86E6-28BE35CF6048/EonilCocoaComplementsTester.app/EonilCocoaComplementsTester
  Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation

dyld: Symbol not found: _objc_autoreleasePoolPush
  Referenced from: /Users/Eonil/Library/Application Support/iPhone Simulator/4.3.2/Applications/3782382E-293A-4D5E-86E6-28BE35CF6048/EonilCocoaComplementsTester.app/EonilCocoaComplementsTester
  Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation
Run Code Online (Sandbox Code Playgroud)

我认为关键字只是替代显式自动释放池创建/删除.无论如何它不是,并抛出一个错误.它仅支持特定版本的iOS吗?那么在哪里可以查看关键字的版本信息?

Dun*_*age 4

您指的是@autoreleasepool吗?

\n\n

如果您使用的是 Xcode 4.2 和 iOS 5 SDK,则可以在构建目标为 iOS 4.3.x 的应用程序中使用 @autoreleasepool。尽管过渡到 ARC 指南指出 @autoreleasepool 中的“ARC 向 Objective-C 语法引入了一个语句结构”,这可能表明需要 ARC,但它接着说,“此语法在所有 Objective-C 模式中都可用”。

\n\n

虽然我不认为这是特别清晰的文档,但这意味着如果您使用的是 iOS 5 SDK,您可以在有或没有 ARC\xe2\x80\x94 的情况下使用 @autoreleasepool 语法。

\n