观看OS 2 - 如何在Watch上存储完全原生应用程序的数据?

mac*_*moo 7 ios apple-watch watchkit

我需要在WatchKit Extension上存储大约5个变量 - 仅限Watch.该应用程序将完全原生,不会将任何信息传递给iPhone.如果手表重新启动,我需要数据保持不变.应用程序当前在重新启动时重置为默认变量状态.我不知道该用什么.我在网上找到了关于使用手表钥匙串存储键值数据对(用户名/密码)的信息,但我认为这不是我应该在这里使用的.感谢一些帮助.

Lan*_*nce 5

watchOS 2可以访问CoreData,NSCoding和NSUserDefaults.取决于您要存储的数据,但这些是最好的(第一方)选项.

如果您打算使用NSUserDefaults,请不要使用standardUserDefaults您应该使用initWithSuiteName:并传入您的应用程序组的名称.

你甚至可以在NSUserDefaults上创建一个类别/扩展来使这更容易.

Objective-C的

@interface NSUserDefaults (AppGroup)
+ (instancetype)appGroupDefaults;
@end

@implementation NSUserDefaults (AppGroup)

+ (instancetype)appGroupDefaults {
    static NSUserDefaults *appGroupDefaults = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        appGroupDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"com.whatever.yourappgroupname"];
    });
    return appGroupDefaults;
}

@end
Run Code Online (Sandbox Code Playgroud)

迅速

private var _appGroupDefaults = NSUserDefaults(suiteName: "com.whatever.yourappgroupname")!

extension NSUserDefaults {
    public func appGroupDefaults() -> NSUserDefaults {
        return _appGroupDefaults
    }
}
Run Code Online (Sandbox Code Playgroud)