0

i'm having some trouble trying to convert the following code in Objective C to 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(), ^{
    ......
    });
}

Can you please help me?I' m quite new to this!!!Thank you in advance!!!

Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343
eanton
  • 1
  • 1

1 Answers1

1

Try this:

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()) {
        //....
    }
}
Santosh
  • 2,900
  • 1
  • 16
  • 16
  • Thank you for your response!I can't understand how this variable gets its value as __block, in swift.I 'm still trying to understand the whole process... – eanton Jul 01 '16 at 11:36
  • What are you doing in `bg_loadOneDay` method? Can you post that complete code for this method? – Santosh Jul 01 '16 at 12:11
  • I am actually trying to create a calendar and load events on it .The code in objective c is - (void)bg_loadOneDay { __block NSDate *date; dispatch_sync(dispatch_get_main_queue(), ^{ if ((date = [self.daysToLoad firstObject])) { [self.daysToLoad removeObject:date]; } if (![self.dayPlannerView.visibleDays containsDate:date]) { date = nil; } }); if (date) { [self bg_loadEventsAtDate:date]; } } – eanton Jul 06 '16 at 09:21