문제

i am using NSUserDefaults to save a string in my app. It all works fine. But when i clear the cache/memory by pressing the homebutton twice, kill the app and restart it again the NSUserDefaults is not saved.

Is there a way to save the NSUserDefaults even when i clear cache/memory?

Here is the code i use:

To set the string

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

To get the string

myLabel.text = [savedString stringForKey:@"savedString"];
도움이 되었습니까?

해결책

In your AppDelegate.h file

+(NSUserDefaults*)getdefaultvalue;

In Your AppDelegate.m file

static NSUserDefaults *defaultvalue;

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

}

In your class where you want to save data or string Ex.

[[AppDelegate getdefaultvalue] setObject:@"FacebookLogin" forKey:@"NORMALOGIN"];

Now Remove from apps and print the value of string in

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

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

  Return YES;

}

You got String value.

다른 팁

Actually NSUserDefault save data in .plist, So when you remove you app then all data also get deleted.

Deleting the app will delete the plist file the NSUserDefaults generate. You will need to make a check if the files exists in your app, then load the UserDefaults if not, create the plist with the information. So you will have your standard settings when the user opens the app etc.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top