2016-06-29 1 views
0

je vais avoir un peu de mal à essayer de convertir le code suivant dans Objective C à Swift:Objectif C processus d'expédition Swift

- (BOOL)loadEventsAtDate:(NSDate*)date 
{ 

    dispatch_async(self.bgQueue, ^{ 
     [self bg_loadOneDay]; 
    }); 

    return YES; 
} 

- (void)bg_loadOneDay 
{ 
    __block NSDate *date; 

    dispatch_sync(dispatch_get_main_queue(), ^{ 
     ..... 
    }); 

    if (date) { 
     [self bg_loadEventsAtDate:date]; 
    } 
} 

- (void)bg_loadEventsAtDate:(NSDate*)date 
{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 
    ...... 
    }); 
} 

Pouvez-vous s'il vous plaît aidez-moi je suis tout à fait nouveau à ce !!! Merci d'avance!!!

Répondre

1

Essayez ceci:

func loadEventsAtDate(date: NSDate) -> Bool { 
    let bgQueue = dispatch_queue_create("MY_BG_QUEUE", DISPATCH_QUEUE_SERIAL)//use your `bgQueue` 
    dispatch_async(bgQueue) { 
     self.bg_loadOneDay() 
    } 
    return true 
} 

func bg_loadOneDay() { 
    let date = NSDate() 
    dispatch_async(dispatch_get_main_queue()) { 
     //.... 
    } 
    bg_loadEventsAtDate(date)//not sure which date you are sending here, please check 
} 

func bg_loadEventsAtDate(date: NSDate) { 
    dispatch_async(dispatch_get_main_queue()) { 
     //.... 
    } 
} 
+0

Merci pour votre réponse, je ne comprends pas comment cette variable obtient sa valeur __block, en m » swift.I tente toujours de comprendre tout le processus ... – canton

+0

! Que faites-vous dans la méthode 'bg_loadOneDay'? Pouvez-vous poster ce code complet pour cette méthode? – Santosh

+0

Je suis en train d'essayer de créer un calendrier et de charger des événements. Le code de l'objectif c est - (void) bg_loadOneDay { __block NSDate * date; dispatch_sync (dispatch_get_main_queue(),^{ if ((date = [self.daysToLoad firstObject])) { [self.daysToLoad removeObject: date];! } si ([self.dayPlannerView.visibleDays containsDate: date]) { date = zéro; } }); si (date) { [self bg_loadEventsAtDate: date]; } } – canton