как мне установить существующее время NSDate?

как мне установить существующее время NSDate ?

То есть у меня есть дата (скажем, текущая дата / время), но затем хотите установить это на определенное время (например, 11.23 утра), скажем. Каков самый быстрый способ сделать это в цели C?

Я смотрю на NSCalendar и вижу такие методы, как dateByAddingComponents: toDate: options: и dateFromComponents : , но они, похоже, не совсем подходят для того, что мне здесь нужно. Например:

  1. dateFromComponents: Это выглядит некрасиво, но компилируется и отлично работает на gcc-4.6

    typedef std::tuple<int,char,long> mytuple;
    
    mytuple var = std::make_tuple(4,'c',1000);
    char * ptr = reinterpret_cast<char*>(&var);
    long * pt = reinterpret_cast<long*>(ptr+tuple_element_offset<2,mytuple>());
    
    std::cout << *pt << std::endl;
    

    выводит «1000».

    Я не слишком много знаю о constexpr, поэтому мои вопросы:

    1. Это законный c ++?
    2. Что еще важнее, почему мне разрешено звонить std :: get (не constexpr) внутри функции constexpr?

    Насколько я понимаю constexpr, компилятор вынужден оценивать результат выражения во время компиляции, поэтому на практике не может произойти разыменование нуля.

7
задан James McNellis 18 March 2011 в 23:23
поделиться