I get some error messages in logs
[User Defaults] Failed to write value for key GameId in CFPrefsPlistSource<0x1740faf00> (Domain: xxx.xxxxxx, User
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
I just deleted the app and installed again via Xcode. Using XCode 8.2.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
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.
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.
I'd like to share my solution for this problem. For my case, the error was a legitimate error and my data was not saved properly. It turns out the error was caused by having a NSUserDefaults "data saving" in a loop.
By "data saving" I mean this (pseudocode):
loop{
[defaults setObject:@"Data" forKey:@"Key"];
[defaults synchronize];
}
So the code executes this multiple times very fast and cause the problem. I guess "synchronize" cannot handle concurrent calls.
What needs to be done is:
loop{
[defaults setObject:@"Data" forKey:@"Key"];
}
[defaults synchronize];
synchronize be called once after all the objects been set.