NSUserDefaults errors in logs

14,445

Solution 1

Lot of people are finding this issue on Xcode 8.

"As crazy as it sounds try rebooting phone and host, sometimes Xcode can get stuck for sum reason only restart helps.

build with Xcode 8.1 Beta and you will see the same warning, but you will also get the value. "

reference : https://forums.developer.apple.com/thread/51348

Solution 2

I was getting a similar error:

[User Defaults] attempt to set <private> for key in <private> in read-only (due to a previous failed write) preferences domain CFPrefsPlistSource<0x1700f5f80>

but it only happened when I was plugged into Xcode.

A device reboot fixed this.

Solution 3

I just had the same error. The error for me was because I called synchronize multiple times.

By calling [userDefaults synchronize] just once all the error messages disappeared.

Solution 4

if you suffer this problem when you try to save data to extension APP by using userDefault,maybe you had written this code : [[NSUserDefaults standardUserDefaults] initWithSuiteName:@"group.xxx.com"];,this code reset default userDefault. Actually,the correct code is : [[NSUserDefaults alloc] initWithSuiteName:@"group.xxx.com"]; http://www.jianshu.com/p/e782104c3bc3

Share:
14,445
Valentin Shamardin
Author by

Valentin Shamardin

I'm iOS developer since 2012. I took part in LitRes projects, I have one own app - Exchange. And I'm always ready to start new cool projects! SOreadytohelp

Updated on June 06, 2022

Comments

  • Valentin Shamardin
    Valentin Shamardin about 2 years

    I get some error messages in logs

    [User Defaults] Failed to write value for key GameId in CFPrefsPlistSource<0x1740faf00> (Domain: xxx.xxxxxx, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null)): Path not accessible, switching to read-only

    [User Defaults] attempt to set for key in in read-only (due to a previous failed write) preferences domain CFPrefsPlistSource<0x1740faf00> (Domain: xxx.xxxxxx, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null))

    What does cause this?

    That's how I use NSUserDefaults:

    - (NSString *)gameId
    {
        if (_gameId)
            return _gameId;
    
        _gameId = [[NSUserDefaults standardUserDefaults] objectForKey:@"GameId"];
        return _gameId;
    }
    
    - (void)setGameId:(NSString *)aGameId
    {
        _gameId = aGameId;
        [[NSUserDefaults standardUserDefaults] setObject:_gameId forKey:@"GameId"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }