根据Bavarious 对这个 SO question 的回答,如果您使用 LLVM/clang 构建,我相信这@autoreleasepool
现在是一个 Objective-C 语言功能。
在这种情况下,如何重写以下代码以在非 ARC 环境中使用 an@autoreleasepool
而不是 an ?NSAutoreleasePool
[NSAutoreleasePool addObject:anObject]; // (*)
背景:我本质上想编写一个-autorelease
不以任何方式与NSAutoreleasePool
类交互的自定义实现:
@autoreleasepool {
SomeCls *obj = [[SomeCls alloc] init];
[obj autorelease]; // Does not go through an NSAutoreleasePool object
// ...
}