在swift中将时间间隔存储到nsuserdefaults

时间:2015-01-01 14:09:33

标签: xcode swift xcode6 nsuserdefaults nstimeinterval

我试图在willmovefromview方法中保存歌曲的当前时间,以便在didmovetoview方法中场景重新开始的同时播放歌曲,但我不知道用什么代码存储一个NSTimeinterval

我存储和获取当前时间的代码(不工作:NSTimeinterval不能转换为Int())

backgroundMusicPlayer.currentTime = NSUserDefaults.standardUserDefaults().objectForKey("musictime")
NSUserDefaults.standardUserDefaults().setInteger(backgroundMusicPlayer.currentTime, forKey: "musictime")

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

如果你在Xcode源文件中的NSTimeInterval上“cmd-click”,你会看到它 NSTimeInterval被定义为Double的类型:

typealias NSTimeInterval = Double

因此,您必须使用doubleForKeysetDouble来获取并在用户默认值中设置它:

backgroundMusicPlayer.currentTime = NSUserDefaults.standardUserDefaults().doubleForKey("musictime")
NSUserDefaults.standardUserDefaults().setDouble(backgroundMusicPlayer.currentTime, forKey: "musictime")

答案 1 :(得分:1)

由于NSTimeInterval实际上是一个Double(正如@Martin R已经指出的那样),你必须执行以下操作来存储你的值:

NSUserDefaults.standardUserDefaults().setDouble(backgroundMusicPlayer.currentTime, forKey: "someKey")
NSUserDefaults.standardUserDefaults().synchronize()

要获得您的价值,您必须执行以下操作:

backgroundMusicPlayer.currentTime = NSUserDefaults.doubleForKey("someKey")