Zajmuję się tworzeniem oprogramowania z Xcode 6 przy użyciu Swift. Kiedy naciskam przycisk, mój kod pobiera pewne informacje z sieci i zapisuje je w moim NSWindow.Używanie wątków do aktualizacji interfejsu użytkownika za pomocą Swiftu
więc wyobrazić sobie coś takiego:
@IBAction func buttonPressed(sender: AnyObject)
{
for page in listOfPages //Number of pages is 40.
{
var label: NSTextField = NSTextField();
label.stringValue = getInformetionsFromPage(page)
/*
some code to add label in the window here
*/
}
}
Problem polega na tym, że po kliknięciu przycisku, to zajmuje trochę czasu, zanim widzę listę wyników, w czasie głównego aplikacja jest zamrożone. To dlatego, że nie używam żadnych wątków do rozwiązania tego problemu. Jak mogę zaimplementować wątki, aby każda etykieta była aktualizowana na każdym kroku pętli? Jestem nowy w wątkach i Swift, więc potrzebuję pomocy!
Dziękuję wam.
Doskonała! Mam tylko wątpliwości, tutaj w twoim kodzie, gdzie powinienem ustawić ramkę etykiety w oknie? Przed trzecią linią? – Matt
Nie wiem, czy to prawda w przypadku kakao, ale w dotyku kakao, nigdy nie powinieneś uzyskiwać dostępu do kodu ui na innym niż główny wątek. Więc przed pierwszą wysyłką i wewnątrz drugiego bloku wysyłkowego można bezpiecznie uzyskać dostęp do kodu ui – mustafa
Dziękuję bardzo !! – Matt