当缓存/内存清除时,NSUserDefaults不会保存

时间:2014-05-14 12:50:18

标签: ios caching ios7 nsuserdefaults

我正在使用NSUserDefaults在我的应用中保存字符串。一切正常。但是当我通过按两次主页按钮清除缓存/内存时,请终止应用程序并重新启动它,NSUserDefaults不会保存。

即使清除缓存/内存,有没有办法保存NSUserDefaults

以下是我使用的代码:

设置字符串

NSUserDefaults *savedString = [NSUserDefaults standardUserDefaults];
[savedString setObject:@"The string i want to save" forKey:@"savedString"];
[savedString synchronize];

获取字符串

myLabel.text = [savedString stringForKey:@"savedString"];

3 个答案:

答案 0 :(得分:1)

在AppDelegate.h文件中

+(NSUserDefaults*)getdefaultvalue;

在AppDelegate.m文件中

static NSUserDefaults *defaultvalue;

+(NSUserDefaults*)getdefaultvalue
{
    if (defaultvalue==nil)
    {
        defaultvalue=[NSUserDefaults standardUserDefaults];
        return defaultvalue;
    }
    return  defaultvalue;

}

在您要保存数据或字符串Ex。

的班级中
[[AppDelegate getdefaultvalue] setObject:@"FacebookLogin" forKey:@"NORMALOGIN"];

现在从应用中删除并在

中打印字符串的值
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

  NSLog(@" string == %@",[[AppDelegate getdefaultvalue] valueForKey:@"NORMALOGIN"]);

  Return YES;

}

你有String值。

答案 1 :(得分:0)

实际上NSUserDefault会将数据保存在.plist中,因此当您删除app时,所有数据也会被删除。

答案 2 :(得分:-2)

删除应用会删除NSUserDefaults生成的plist文件。您需要检查应用程序中是否存在文件,然后加载UserDefaults,如果没有,请创建包含该信息的plist。因此,当用户打开应用程序等时,您将获得标准设置。