Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 创建表示“NSDate”的NSDate对象;“今天”;在某个时间_Iphone_Objective C - Fatal编程技术网

Iphone 创建表示“NSDate”的NSDate对象;“今天”;在某个时间

Iphone 创建表示“NSDate”的NSDate对象;“今天”;在某个时间,iphone,objective-c,Iphone,Objective C,我要么对NSDate的复杂性有点不知所措,要么就是不理解它的概念:) 我只想创建一个NSDate实例,分别表示今天的日期和晚上8点20.00h的固定时间 这不会像创建一个保持当前时间的实例那样困难,然后再减去或将必要的差值加到8pm,可以吗 谢谢你的帮助 ultranoob使用NSCalendar: NSCalendar* myCalendar = [NSCalendar currentCalendar]; NSDateComponents* components = [myCalendar c

我要么对NSDate的复杂性有点不知所措,要么就是不理解它的概念:)

我只想创建一个NSDate实例,分别表示今天的日期和晚上8点20.00h的固定时间

这不会像创建一个保持当前时间的实例那样困难,然后再减去或将必要的差值加到8pm,可以吗

谢谢你的帮助

ultranoob使用NSCalendar:

NSCalendar* myCalendar = [NSCalendar currentCalendar];
NSDateComponents* components = [myCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit 
fromDate:[NSDate date]];
[components setHour: 20];
[components setMinute: 0];
[components setSecond: 0];
NSDate *myDate = [myCalendar dateFromComponents:components];

如果你想更简洁,你可以从过期的组件中省略你想设置为0的单位。没错,但这说明了更普遍的情况。疯狂的是,我走了同样的路,但我认为必须有一个“单线解决方案”。。。多谢各位@山姆:以前有NSCalendarDate,这可能更符合你的预期。苹果显然认为将所有这些日历信息实际嵌入日期本身在概念上是不明智的,所以他们将日历拆分为自己的类,并留下NSDate只是为了表示原始时间点。@chuck:thx,我刚刚查看了不推荐使用的NSCalenderDate类。。我理解苹果为什么决定“删除”它,但另一方面,对于非复杂操作来说,它会更容易。。。我认为这些操作是绝大多数iPhone应用程序所使用的。不要担心对NSDate感到失望。很多人在NSDate上创建类别是有原因的:用日期做简单的事情非常糟糕。这是一个很好的,但还有很多。NSDate和相关类在进行简单计算时令人沮丧,因为它被设计用来处理繁重的数据处理,而基于时间的计算看似复杂。当你经常寻找的只是方向盘时,NSDate更像是船的引擎。使用它就像是通过调整引擎从机舱驾驶一艘船。真的应该有一个标准化的苹果提供的包装类。谢谢你的评论@TechZen:这正是它的感觉:“KuBi:THX,这看起来像一个类,我会考虑融入我的项目……