NSNumber保存双倍

时间:2012-10-01 01:26:14

标签: objective-c cocoa core-data osx-mountain-lion nsnumber

考虑以下三行代码

NSLog(@"start:%f", player.currentTime);
episode.resumeStamp = [NSNumber numberWithDouble:player.currentTime];
NSLog(@"end: %f", [episode.resumeStamp doubleValue]);

episode是NSManagedObject的子类,播放器是AVAudioPlayerplayer.currentTime会返回NSTimeInterval(双倍)。可以想到,当上面显示的代码运行时,“start:”和“end:”值将是相同的。奇怪的是,记录下面的内容......

2012-09-30 20:13:02.941 MyApp[473:303] start:3.809116
2012-09-30 20:13:02.942 MyApp[473:303] end: 0.000000
2012-09-30 20:13:03.941 MyApp[473:303] start:4.809048
2012-09-30 20:13:03.942 MyApp[473:303] end: 0.000000
2012-09-30 20:13:04.941 MyApp[473:303] start:5.809116
2012-09-30 20:13:04.942 MyApp[473:303] end: 0.000000

为什么会发生这种情况的任何想法?非常感谢你的时间!

1 个答案:

答案 0 :(得分:3)

episode很可能是nil

只需将日志更新到

即可
NSLog(@"end: %f\nepisode %@", [episode.resumeStamp doubleValue], nil);