swift - 共享 NSUserDefaults plist 文件?

标签 swift nsuserdefaults

我想使用 NSUserDefaults 的功能来保存状态。我目前确实有这个工作。但我想复制这个 plist 文件并将其应用到另一台设备上的同一个应用程序。

是否有某种方法可以将文件名传递给 NSUserDefaults 或者我是否需要使用其他类?或者可以与另一个设备上的同一个应用程序共享 plist 吗?

device1 和 device2 上的应用程序是同一个应用程序。我不想在不同的应用程序之间共享数据。

最佳答案

将它作为字典传递对您有用吗?

NSDictionary *dict = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];

然后在其他设备上:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
for (NSString *key in dictionaryRepresentation.allKeys) {
    id ob = dictionaryRepresentation[key];
    [defaults setObject:ob forKey:key];
}

或者,您可以将 dict 写入 .plist 文件,将其传输过来,从 .plist 解码为 dict 并按照我上面的操作。

写入 .plist 文件:

[dict writeToFile:@"path/to/your/file.plist" atomically:YES];

.plist 文件读取:

NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:@"path/to/your/file.plist"];

关于swift - 共享 NSUserDefaults plist 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29084977/

相关文章:

iOS:NSUserDefaults 找不到设备上的设置

ios - 应用程序传输后 NSUserDefaults 是否仍然存在?

swift - NSURLErrorDomain 代码=-1100

ios - NSTimer 未正确执行

ios - 在 CollectionView Swift 上显示 Gif

swift - “AnyHashable”不能转换为 ‘NSObject’

ios - 为什么重复 UIView 动画会在边缘滑动时卡住?

ios - 如何将自定义对象保存在数组中并将其存储在 NSUserDefaults - iPhone

objective-c - 使用 NSUserDefaults 保存 CGPoints 列表

ios - NSUserDefaults:是否可以从另一个应用程序获取 userDefaults?