我想用 ARC 在 AppleScriptObjc 中创建一个自动释放池,但我无法保留它。这是代码:
property NSAutoreleasePool : class "NSAutoreleasePool"
script AppDelegate
...
on buttonClicked_(sender)
set pool to NSAutoreleasePool's alloc()'s init()
...
pool's drain()
end buttonClicked_
end script
在代码中,我得到了这个调试错误:
-[NSAutoreleasePool retain]: Cannot retain an autorelease pool (error -10000)
我搜索了一下,发现“[[NSAutoreleasepool alloc] init]”只能在没有 ARC 的情况下使用,相反,“@autoreleasepool”可以与 ARC 一起使用而没有 ARC。
在 Objective-C 中,我们可以使用 @autoreleasepool。例子:
int main()
{
@autoreleasepool {
...
}
}
但是AppleScriptObjc 没有'{' 或'}',所以我们不能使用@autoreleasepool。然而,我试了一下,我得到了一个错误。
代码:
@autoreleasepool
...
错误:
error: Expected “end” but found unknown token. (-2741)
如何在 AppleScriptObjc 中使用 @autoreleasepool?