应用程序关闭时,NSNumber属性将为nil

时间:2014-08-06 03:46:29

标签: ios

我有一个名为recordingNumber的NSNumber属性的单例对象,我用它来跟踪我在我的应用程序中的录音。首次打开应用程序时,recordingNumber设置为零,并在每次将新录制内容保存到应用程序时递增。当我关闭我的应用程序然后重新打开时,该数字会回到零并且每个新录制都会覆盖旧录制。当应用程序打开和关闭时,如何防止该属性变为零?我使用核心数据来存储我的所有录制文件 - 我应该创建一个单独的实体来存储这一个值吗?

@property (nonatomic) NSNumber * recordingNumber;

2 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点,最简单的方法是创建一个可以包含数字和其他应用程序设置的plist。打开应用程序时,将使用默认值读取或创建plist,每次更新或关闭应用程序时都会保存这些值。

您还可以在核心数据中创建一个单独的表来包含该数字,但除非您的表结构实际上需要一个表来包含MTD(月初至今)和YTD总计等历史摘要,否则它将是过度的。

答案 1 :(得分:0)

要在应用实例之间保留少量数据,数据可以存储在NSUserDefaults中:

要保留数据:

[[NSUserDefaults standardUserDefaults] setObject:self.recordingNumber forKey:@"recordingNumber"] 
[[NSUserDefaults standardUserDefaults] synchronize];

在应用启动时,请从NSUserDefaults

中阅读此内容
self.recordingNumber = [[NSUserDefaults standardUserDefaults] objectForKey:@"recordingNumber"]