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/
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/
Próbuję wypracować odpowiedni model singletonu do użytku w Swift. Do tej pory udało mi się uzyskać bezpieczny dla wątków model działający jako: class var sharedInstance: TPScopeManager { get { struct Static { static var instance: TPScopeManager? = nil } if !Static.instance { Static.instance...
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...
Wiem, że Python nie obsługuje przeciążania metod, ale napotkałem problem, którego nie potrafię rozwiązać w przyjemny Python. Tworzę grę, w której postać musi strzelać różnymi kulami, ale jak napisać różne funkcje do tworzenia tych kul? Załóżmy na przykład, że mam funkcję, która tworzy pocisk...
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ę...
Nadal jestem trochę nowy w Objective-C i zastanawiam się, jaka jest różnica między następującymi dwoma stwierdzeniami? [object performSelector:@selector(doSomething)]; [object
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...