Я хочу создать autoreleasepool в AppleScriptObjc с ARC, но не смог его сохранить. Вот код:
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)
Как я могу использовать @autoreleasepool в AppleScriptObjc?
performSelectorInBackground_withObject_("function", AppDelegate)
Это позволяет мне автоматически освобождать пулы. - person subdiox   schedule 26.08.2013