Я работаю над задачей в 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 и почему мы должны создавать компоненты даты для подачи объекта.
Все это ново для меня,и я работал с динамическими языками в прошлом. Так что объяснение вроде "чайников" было бы здорово!