我想使用ARC在AppleScriptObjc中創建一個autoreleasepool,但我無法保留它。 下面的代碼:@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