NSUserDefaults for all use

问题描述 投票:1回答:1

当前我使用的是每个用户的默认设置。

_defaults = [NSUserDefaults standardUserDefaults];
...
NSData *myData = [_defaults valueForKey:key];

但是,我需要一个等效的地方,可以保存全局数据以供所有用户共享,而不仅仅是当前用户共享。

NSUserDefaults对所有用户来说是什么等价?

objective-c macos nsuserdefaults preferences
1个回答
0
投票

您可以使用[NSUserDefaults standardUserDefaults]存储所有共享数据,然后对于特定用户,您可以只创建一个新的suite默认值,例如(where "UniqueUserID" changes for each user):]]

NSUserDefaults *globalDefaults = [NSUserDefaults standardUserDefaults];
NSUserDefaults *userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"UniqueUserID"];

现在您有standardUserDefaults用于全局数据-即与所有用户共享并且您有userDefaults在这种情况下是特定于UniqueUserID的(每个用户都会更改)

现在您可以使用相同的key查找globaluser的不同值>

NSString *key = @"Key";
[globalDefaults setObject:@"global" forKey:key];
[userDefaults setObject:@"user" forKey:key];

NSLog(@"Global value for same key %@", [globalDefaults objectForKey:key]);
NSLog(@"User value for same key %@", [userDefaults objectForKey:key]);

打印:同一关键全局的全局值同一关键用户的用户值

希望有帮助

© www.soinside.com 2019 - 2024. All rights reserved.