Я хочу сделать autoreleasepool в AppleScriptObjc с ARC, но я не смог его сохранить. Вот код:@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] инициализации]» может быть использован только без ARC вместо этого «@autoreleasepool» может использоваться с ARC и без ARC.
В Objective-C мы можем использовать @autoreleasepool. Пример:
int main()
{
@autoreleasepool {
...
}
}
Но AppleScriptObjc не '{' или '}', поэтому мы не можем использовать @autoreleasepool. Однако я попробовал, и у меня появилась ошибка.
Код:
@autoreleasepool
...
Ошибка:
error: Expected “end” but found unknown token. (-2741)
Как я могу использовать @autoreleasepool в AppleScriptObjc?
Я просто учился, но я бы хотел, чтобы с ARC вам не нужно было создавать пулы с автоматической версией. Зачем вам это нужно? – Kaydell
Это потому, что я запускал функцию в фоновом режиме с помощью этого кода: 'performSelectorInBackground_withObject _ (« function », AppDelegate)' Это заставляет меня иметь пулы авто-релизов. – usingsystem8