Jak korzystać z NSAutoreleasePool w AppleScriptObjC
Zastanawiam się, jak zatrzymać inną funkcję z funkcji tła.
Ponadto muszę odpompować NSAutoreleasePool, ale nie wiem, jak to zrobić.
Myślę, że ta aplikacja czasami zamarza, jeśli nie wypuszczam puli.
property i : 0
property myLabel : missing value
on myStartButtonHandler_(sender)
my performSelectorInBackground_withObject_("start", missing value) -- This code prevents "Stop" Button from freezing.
end myStartButtonHandler_
on myStopButtonHandler_(sender)
-- I want to stop start() function and drain AutoreleasePool!
-- I don't want to use "quit me" because I want to stop only start() function.
end myStopButtonHandler_
on start()
repeat
set i to i + 1
myLabel's setIntegerValue_(i)
delay 1
end repeat
end start
Możesz pobrać kod źródłowy stąd ->https://dl.dropboxusercontent.com/u/97497395/test2.zip
Dla twojej informacji używam Xcode 4.6.3.
EDYTOWAĆ
Mój skrypt madelay 300
polecenie, więc nie mogę zatrzymać funkcji sprawdzając wartość zmiennej. Przepraszam.
EDYTOWAĆ
Pomyślałem o zatrzymaniu funkcji podczas opóźniania poleceń.
on start()
repeat 5 times
if i = 1 then
error -128
else
delay 60
end repeat
end start
on myStopButtonHandler_(sender)
set i to 1
end myStopButtonHandler_
Mogę zatrzymać tę funkcję w 60 sekund, ale nie mogę jej zatrzymać, gdy tylko pchnę przycisk stop. Wciąż czekam na twoją odpowiedź.