2017-06-03 67 views
0

我想提高这个作为一个与苹果支持的错误,但它需要很长时间才能从他们得到任何答复,所以...我想问这里。奇怪的Xcode行为

调试一个应用程序,我使用一些datetime转换时区之间的转换。 我得到以下奇怪的行为,我想知道是否有其他人看到了这一点,并知道如何解决它。

的Xcode 8.3.2

你可以看到GMTDATE显示的是2完全不同的日期/时间值(他们甚至不相关的值),它是很难知道哪一个是正确的。 我已经重新启动Xcode /电脑等,但仍然是相同的!

截图附:enter image description here

- (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,仍然一样。

enter image description here

更新:它与所有的NSString变量发生。只要我为它们写入一个值,调试器窗口就会以相同的日期值显示它们。如果我将它们打印到控制台或NSLog上,则值正确显示。

+0

你可以添加这段代码?这样我们也可以检查。 –

+0

对该方法的调用发生双重显示 - 因此参数(GMTDate)在Xcode调试器中同时显示2个不同的值(请参阅屏幕截图) - 方法调用只是将日期字符串作为参数传递。 –

+0

显示正在拨打电话的代码。你确定*它正在发送一个'NSString'?在NSString上使用Quick Look会显示两个不同的值 - 特别是你在这里展示的是什么...... – DonMag

回答

0

发现罪魁祸首。 在调试器中,“编辑摘要格式”弹出窗口我不知何故无意中粘贴了这个日期值,并且它显示了所有NSString值。如果我加载另一个项目,它保留了“编辑摘要格式”字符串并将其应用于所有NSString。

荣誉对一个旧SO张贴在这里:Strange values displayed in Xcode debugger

截图附!

enter image description here

enter image description here