Как рассчитать разницу между двумя датами в Objective -C?

Я работаю над задачей в Objective -C Programming, The Big Nerd Ranch Guide, и я немного сбит с толку одной из задач.

Use two instances of NSDate to figure out how many seconds you have been alive. Hint: here is how you create a new date object from the year, month, etc.:

Поэтому мне нужна разница между настоящим моментом и моей датой рождения в секундах. Звучит неплохо. Затем появляется подсказка:

@autoreleasepool {
    NSDateComponents *comps = [[NSDateComponents alloc] init];
    [comps setYear:1981];
    [comps setMonth:7];
    [comps setDay:12];
    [comps setHour:1];
    [comps setMinute:55];
    [comps setSecond:33];

    NSCalendar *g = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

    NSDate *dateOfBirth = [g dateFromComponents:comps];

Первая проблема заключается в том, что я не понимаю, что означает *g. Я знаю, что это указатель на объект NSCalendar. Но зачем нам это нужно? И что означает g?

Затем пример кода использует переменную gдля получения даты. На другом языке это было бы так же просто, как DateDiff(dateOne, dateTwo, interval). Я не совсем понимаю, зачем вообще нужен объект Calendar и почему мы должны создавать компоненты даты для подачи объекта.

Все это ново для меня,и я работал с динамическими языками в прошлом. Так что объяснение вроде "чайников" было бы здорово!

0
задан Mohamad 2 August 2012 в 16:59
поделиться