저는 Objective-C Programming의 The Big Nerd Ranch Guide에 도전하고 있습니다. 도전 과제 중 하나에 약간의 난처함이 있습니다.Objective-C에서 두 날짜의 차이를 어떻게 계산합니까?
NSDate의 두 인스턴스를 사용하여 수명이 몇 초인지 알아냅니다. 힌트 : 다음은 연도, 월 등에서 새 날짜 개체를 만드는 방법입니다. :
그래서 지금 생년월일과 초 차이가 있어야합니다. 좋은 소리. 그런 다음 힌트가 나타납니다 :
@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 객체가 왜 필요한지, 왜 객체를 공급할 날짜 구성 요소를 만들어야하는지에 대해서는 분명하지 않습니다.
이 모든 것이 나에게는 새롭고 과거에는 동적 언어로 작업했습니다. 그래서 설명 같은 "인형들"은 위대 할 것입니다!
[이있는 NSDate 객체를 빼면]의 중복 가능성 (http://stackoverflow.com/questions/6306661/subtracting-two-nsdate-objects) –
@JamesBlack : 차이 비트의 복제본처럼 보이지만 처음에는 "무엇을위한 달력"비트가 아닙니다. –