Czy istnieje sposób na wywołanie bloku z prymitywnym parametrem po opóźnieniu, np. Użycie, performSelector:withObject:afterDelay:ale z argumentem takim jak int/ double/
Grand Central Dispatch (GCD) zapewnia prosty i niezawodny mechanizm współbieżnych i asynchronicznych operacji, głównie w systemach operacyjnych Apple (np. IOS, macOS, watchOS i tvOS), ale także we FreeBSD i MidnightBSD.
Czy istnieje sposób na wywołanie bloku z prymitywnym parametrem po opóźnieniu, np. Użycie, performSelector:withObject:afterDelay:ale z argumentem takim jak int/ double/
Przeglądałem iBook od Apple i nie mogę znaleźć żadnej jego definicji: Czy ktoś może wyjaśnić strukturę dispatch_after? dispatch_after(<#when: dispatch_time_t#>, <#queue: dispatch_queue_t?#>, <#block:
Uczę się o programowaniu współbieżnym na iOS. Do tej pory czytałem o NSOperation/NSOperationQueue i GCD. Jakie są powody używania NSOperationQueueover GCDi vice versa? Brzmi jak oba GCDi NSOperationQueueoddziela jawne tworzenie NSThreadsod użytkownika. Jednak związek między tymi dwoma podejściami...
W Swift 2 mogłem użyć dispatch_afterdo opóźnienia akcji za pomocą wielkiej centralnej wysyłki: var dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0.1 * Double(NSEC_PER_SEC))) dispatch_after(dispatchTime, dispatch_get_main_queue(), { // your function here }) Ale wydaje...
W Swift 2 udało mi się utworzyć kolejkę z następującym kodem: let concurrentQueue = dispatch_queue_create("com.swift3.imageQueue", DISPATCH_QUEUE_CONCURRENT) Ale nie kompiluje się w Swift 3. Jaki jest preferowany sposób napisania tego w Swift
Jeśli możesz kierować system iOS 4.0 lub nowszy Czy używając GCD to najlepszy sposób na utworzenie singletonu w Objective-C (wątek bezpieczny)? + (instancetype)sharedInstance { static dispatch_once_t once; static id sharedInstance; dispatch_once(&once, ^{ sharedInstance = [[self alloc]...
Mam wywołanie zwrotne, które może pochodzić z dowolnego wątku. Kiedy otrzymuję to wywołanie zwrotne, chciałbym wykonać pewne zadanie w głównym wątku. Czy muszę sprawdzać, czy jestem już w głównym wątku - czy istnieje kara za nieprzeprowadzenie tej kontroli przed wywołaniem poniższego...
Mam dużo kodu w projektach Swift 2.x (lub nawet 1.x), które wyglądają tak: // Move to a background thread to do some long running work dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { let image = self.loadOrGenerateAnImage() // Bounce back to the main thread to...
Korzystając z GCD, chcemy przejść do wykonania i wykonania dwóch bloków asynchronicznych, zanim przejdziemy do kolejnych kroków wykonania. Jak najlepiej to zrobić? Wypróbowaliśmy następujące, ale wydaje się, że to nie działa: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,...
W mojej aplikacji mam funkcję, która tworzy NSRURLSession i wysyła NSURLRequest za pomocą sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error) W bloku ukończenia tego zadania muszę wykonać obliczenia, które dodają obraz UIImagającego do wywołującego kontrolera widoku. Mam...
Testuję kod, który wykonuje przetwarzanie asynchroniczne przy użyciu Grand Central Dispatch. Kod testowy wygląda następująco: [object runSomeLongOperationAndDo:^{ STAssert… }]; Testy muszą czekać na zakończenie operacji. Moje obecne rozwiązanie wygląda następująco: __block BOOL finished =...
Chciałbym, aby pętla for in wysyłała kilka żądań sieciowych do firebase, a następnie przekazywała dane do nowego kontrolera widoku po zakończeniu wykonywania metody. Oto mój kod: var datesArray = [String: AnyObject]() for key in locationsArray { let ref = Firebase(url: "http://myfirebase.com/"...
Z powodzeniem korzystałem z funkcji Grand Central Dispatch w moich aplikacjach, ale zastanawiałem się, jaka jest prawdziwa zaleta korzystania z czegoś takiego: dispatch_async(dispatch_get_main_queue(), ^{ ... do stuff lub nawet dispatch_sync(dispatch_get_main_queue(), ^{ ... do stuff Chodzi mi...
Utworzyłem kolejkę szeregową w ten sposób: dispatch_queue_t _serialQueue = dispatch_queue_create("com.example.name", DISPATCH_QUEUE_SERIAL); Jaka jest różnica między dispatch_asyncnazywane tak dispatch_async(_serialQueue, ^{ /* TASK 1 */ }); dispatch_async(_serialQueue, ^{ /* TASK 2 */ }); I...
Staram się w pełni zrozumieć kolejki równoległe i szeregowe w GCD. Mam pewne problemy i mam nadzieję, że ktoś może mi odpowiedzieć jasno i na temat. Czytam, że kolejki szeregowe są tworzone i używane do wykonywania zadań jedna po drugiej. Jednak co się stanie, jeśli: Tworzę kolejkę...
Mam metodę, która akceptuje blok i blok uzupełniania. Pierwszy blok powinien działać w tle, a blok uzupełniania w dowolnej kolejce, w której wywołano metodę. W przypadku tego ostatniego zawsze używałem dispatch_get_current_queue(), ale wygląda na to, że jest przestarzały w iOS 6 lub nowszym....
Jak mogę sprawić, by mój kod czekał do zakończenia zadania w DispatchQueue? Czy potrzebuje jakiegoś CompletionHandler czy czegoś takiego? func myFunction() { var a: Int? DispatchQueue.main.async { var b: Int = 3 a = b } // wait until the task finishes, then print print(a) // - this will...
Czytam dokumentację firmy Apple dotyczącą „Zarządzania pamięcią dla kolejek wysyłkowych”: Nawet jeśli zaimplementujesz aplikację zbierającą elementy bezużyteczne, nadal musisz zachować i zwolnić kolejki wysyłkowe i inne obiekty wysyłania. Grand Central Dispatch nie obsługuje modelu...
Jaka jest nowa składnia dispatch_oncew Swift po zmianach wprowadzonych w wersji językowej 3? Stara wersja wyglądała następująco. var token: dispatch_once_t = 0 func test() { dispatch_once(&token) { } } Oto zmiany wprowadzone w libdispatch .