NSDate соответствует протоколу NSCopying. Согласно документации по протоколу NSCopying:
a copy must be a functionally independent object with values identical
to the original at the time the copy was made.
Но когда я делаю это:
NSDate *date1 = [NSDate date];
NSDate *date2 = [date1 copy];
NSLog(@"result: date1 0x%x date2 0x%x", (int)date1, (int)date2);
// "result: date1 0x2facb0 date2 0x2facb0"
Два объекта идентичны (одинаковый идентификатор объекта). Что мне не хватает? Как получить независимый объект в качестве копии?