我需要在WatchKit Extension上存储大约5个变量 - 仅限Watch。该应用程序将完全原生,不会将任何信息传递给iPhone。如果手表重新启动,我需要数据保持不变。应用程序当前在重新启动时重置为默认变量状态。我不知道该用什么。我在网上找到了关于使用手表钥匙串存储键值数据对(用户名/密码)的信息,但我认为这不是我应该在这里使用的。感谢一些帮助。
答案 0 :(得分:5)
watchOS 2可以访问CoreData,NSCoding和NSUserDefaults。取决于您要存储的数据,但这些是最好的(第一方)选项。
如果您要使用NSUserDefaults,请不要使用standardUserDefaults
,而应使用initWithSuiteName:
并传入应用群组的名称。
您甚至可以在NSUserDefaults上制作类别/扩展名,以便更轻松。
@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
private var _appGroupDefaults = NSUserDefaults(suiteName: "com.whatever.yourappgroupname")!
extension NSUserDefaults {
public func appGroupDefaults() -> NSUserDefaults {
return _appGroupDefaults
}
}