2012-10-01 84 views
0

考慮三行代碼下面的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 

任何想法,爲什麼會發生這種情況?非常感謝您的參與!

回答

3

episode是最有可能nil

只需添加更新日誌

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

哇,我無法相信我錯過了。感謝您的快速響應。 –