Existe uma maneira de chamar um bloco com um parâmetro primitivo após um atraso, como usar, performSelector:withObject:afterDelay:mas com um argumento como int/ double/
Existe uma maneira de chamar um bloco com um parâmetro primitivo após um atraso, como usar, performSelector:withObject:afterDelay:mas com um argumento como int/ double/
Estou tentando elaborar um modelo singleton apropriado para uso no Swift. Até agora, consegui obter um modelo seguro sem thread trabalhando como: class var sharedInstance: TPScopeManager { get { struct Static { static var instance: TPScopeManager? = nil } if !Static.instance {...
Examinei o iBook da Apple e não consegui encontrar nenhuma definição dele: Alguém pode explicar a estrutura de dispatch_after? dispatch_after(<#when: dispatch_time_t#>, <#queue: dispatch_queue_t?#>, <#block:
Estou aprendendo sobre programação simultânea para iOS. Até agora eu li sobre NSOperation/NSOperationQueue e GCD. Quais são as razões para usar NSOperationQueuerepetidamente GCDe vice-versa? Soa como ambos GCDe NSOperationQueueabstrai a criação explícita NSThreadsdo usuário. No entanto, a relação...
No Swift 2, pude dispatch_afteradiar uma ação usando o Grand Central Dispatch: 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 }) Mas isso não parece mais...
No Swift 2, consegui criar fila com o seguinte código: let concurrentQueue = dispatch_queue_create("com.swift3.imageQueue", DISPATCH_QUEUE_CONCURRENT) Mas isso não é compilado no Swift 3. Qual é a maneira preferida de escrever isso no Swift
Se você pode segmentar o iOS 4.0 ou superior Usando o GCD, é a melhor maneira de criar singleton no Objective-C (thread safe)? + (instancetype)sharedInstance { static dispatch_once_t once; static id sharedInstance; dispatch_once(&once, ^{ sharedInstance = [[self alloc] init]; }); return...
Eu tenho um retorno de chamada que pode vir de qualquer thread. Quando recebo esse retorno de chamada, gostaria de executar uma determinada tarefa no thread principal. Preciso verificar se já estou no segmento principal - ou há alguma penalidade por não executar essa verificação antes de chamar o...
Eu tenho muito código nos projetos Swift 2.x (ou até 1.x) que se parecem com isso: // 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...
Eu sei que o Python não suporta sobrecarga de método, mas encontrei um problema que não consigo resolver de uma maneira Pythonic agradável. Estou fazendo um jogo em que um personagem precisa atirar em várias balas, mas como escrevo funções diferentes para criar essas balas? Por exemplo, suponha...
Ao usar o GCD, queremos esperar até que dois blocos assíncronos sejam executados e concluídos antes de passar para as próximas etapas de execução. Qual o melhor jeito pra fazer isso? Tentamos o seguinte, mas parece não
No meu aplicativo, tenho uma função que cria uma NSRURLSession e envia uma NSURLRequest usando sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error) No bloco de conclusão desta tarefa, preciso fazer alguns cálculos que adicionem uma UIImage ao viewcontroller de chamada. Eu...
Estou testando algum código que faz processamento assíncrono usando o Grand Central Dispatch. O código de teste fica assim: [object runSomeLongOperationAndDo:^{ STAssert… }]; Os testes precisam aguardar a conclusão da operação. Minha solução atual é assim: __block BOOL finished = NO; [object...
Gostaria que um loop for in enviasse várias solicitações de rede para o firebase e passasse os dados para um novo controlador de exibição assim que o método concluir a execução. Aqui está o meu código: var datesArray = [String: AnyObject]() for key in locationsArray { let ref = Firebase(url:...
Eu tenho usado com êxito o envio central grande em meus aplicativos, mas fiquei pensando qual é a real vantagem de usar algo como isto: dispatch_async(dispatch_get_main_queue(), ^{ ... do stuff ou mesmo dispatch_sync(dispatch_get_main_queue(), ^{ ... do stuff Quero dizer, nos dois casos, você...
Eu criei uma fila serial como esta: dispatch_queue_t _serialQueue = dispatch_queue_create("com.example.name", DISPATCH_QUEUE_SERIAL); Qual é a diferença entre dispatch_asyncchamado assim dispatch_async(_serialQueue, ^{ /* TASK 1 */ }); dispatch_async(_serialQueue, ^{ /* TASK 2 */ }); E...
Estou lutando para entender totalmente as filas simultâneas e seriais no GCD. Tenho alguns problemas e espero que alguém possa me responder com clareza e na hora. Estou lendo que filas seriais são criadas e usadas para executar tarefas uma após a outra. No entanto, o que acontece se: Eu crio...
Ainda sou meio novo em Objective-C e me pergunto qual é a diferença entre as duas declarações a seguir. [object performSelector:@selector(doSomething)]; [object
Eu tenho um método que aceita um bloco e um bloco de conclusão. O primeiro bloco deve ser executado em segundo plano, enquanto o bloco de conclusão deve ser executado em qualquer fila em que o método foi chamado. Sempre usei este último dispatch_get_current_queue(), mas parece que está obsoleto no...
Como posso fazer meu código esperar até que a tarefa no DispatchQueue seja concluída? Ele precisa de algum CompletionHandler ou algo assim? func myFunction() { var a: Int? DispatchQueue.main.async { var b: Int = 3 a = b } // wait until the task finishes, then print print(a) // - this...