ios - UIDatePicker 和日期未正确存储
<p><p>我有一个 IBAction 方法绑定(bind)到运行以下代码的 UIToolbarButton。</p>
<p>UIDatePicker 仅设置为向用户显示时间。
因此,选择器随机选择日期:有时日期是今天,有时日期是明天。我希望选择器始终选择所选时间(但总是在将来)。例如如果用户在 1 月 1 日上午 10:00 选择上午 6:00,我希望日期存储在 1 月 2 日上午 6:00。</p>
<p>以下 if 应该这样做,但是 NSLog 50% 的时间返回一个答案,50% 的时间返回另一个。</p>
<pre><code>if (self.picker.date >= ) {
NSUserDefaults *defaults = ;
NSDate *pickerdate = self.picker.date;
;
;
NSLog(@"The date is more than now. Pickerdate is %@",pickerdate);
}
else {
NSUserDefaults *defaults = ;
NSCalendar* calendar = [ initWithCalendarIdentifier: NSGregorianCalendar];
NSDateComponents* components = [ init];
components.day = 1;
NSDate * pickerdate = ;
;
;
NSLog(@"The date is less than now. Pickerdate is %@",pickerdate);
}
</code></pre>
<p>编辑:代码已修改,我的逻辑倒退了,但问题依然存在。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您不能使用 <code>>=</code>(或类似的)运算符来比较两个 <code>NSDate</code> 对象。这些是对象。您必须使用 <code>compare:</code> 方法来比较两个日期。正如您所拥有的那样,您正在比较一个对象指针是否大于或等于另一个对象指针。绝对不是你想要的。</p>
<p>正确的替换是:</p>
<pre><code>if (] != NSOrderAscending) {
</code></pre>
<p>请注意,<code></code> 给出的结果与 <code></code> 相同。</p></p>
<p style="font-size: 20px;">关于ios - UIDatePicker 和日期未正确存储,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/16073664/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/16073664/
</a>
</p>
页:
[1]