2016-04-05 15 views
0

PerformSelectorOnMainThread kullanan bir kitaptan aldığım bazı kodlarım var. Bu benim kodudurObjective-C: performSelector öğesini Grand Central Dispatch'a dönüştürün

: Ben bazı durumlarda uygulamayı donma ve GCD'yı kullanarak bir arka plan iş parçacığı için bunu değiştirmek istiyorum olduğunu bulma yaşıyorum

[self performSelectorOnMainThread:@selector(fetchData:) withObject:data waitUntilDone:YES]; 

OBEB arka değiştirmeyi Should kadar basit Şu anda

cevap

2

pek hata beklenen ']' atıyor

[self dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0)) { 
    (fetchData:) withObject:data 
}]; 

. dispatch_async bir işlev çağrısı, bir yöntem değil çağrıdır

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
    [self fetchData:data]; 
}); 

Not o: Bu olması gerekir. 2. parametre olarak bir blok alır. Bloğun içindeki kod, arka plan üzerinde aranan gerçek kodu koyduğunuz yerdir.

İlgili konular