我想提高这个作为一个与苹果支持的错误,但它需要很长时间才能从他们得到任何答复,所以...我想问这里。奇怪的Xcode行为
调试一个应用程序,我使用一些datetime转换时区之间的转换。 我得到以下奇怪的行为,我想知道是否有其他人看到了这一点,并知道如何解决它。
的Xcode 8.3.2
你可以看到GMTDATE显示的是2完全不同的日期/时间值(他们甚至不相关的值),它是很难知道哪一个是正确的。 我已经重新启动Xcode /电脑等,但仍然是相同的!
- (NSString*) convertToDeviceTime:(NSString*) GMTDate {
//create the formatter for parsing
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
//parsing the string and converting it to NSDate
NSDate *myGMTDate = [df dateFromString: GMTDate];
//create the formatter for the output
NSDateFormatter *out_df = [[NSDateFormatter alloc] init];
[df setTimeZone:[NSTimeZone systemTimeZone]];
[out_df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
//output the date
NSString *myDeviceDate =[out_df stringFromDate:myGMTDate];
NSLog(@"the date is %@",myDeviceDate);
return myDeviceDate;
}
下面
新截图 - 这必须是有毛病的Xcode, 的“令牌”的真正价值显示在快看,但调试窗口显示它作为一个日期!奇怪的。我重新启动了Mac,仍然一样。
更新:它与所有的NSString变量发生。只要我为它们写入一个值,调试器窗口就会以相同的日期值显示它们。如果我将它们打印到控制台或NSLog上,则值正确显示。
你可以添加这段代码?这样我们也可以检查。 –
对该方法的调用发生双重显示 - 因此参数(GMTDate)在Xcode调试器中同时显示2个不同的值(请参阅屏幕截图) - 方法调用只是将日期字符串作为参数传递。 –
显示正在拨打电话的代码。你确定*它正在发送一个'NSString'?在NSString上使用Quick Look会显示两个不同的值 - 特别是你在这里展示的是什么...... – DonMag