应用程序及其扩展程序之间的数据共享通过常见的AppGroup进行。我可以使用共享应用程序组容器作为持久数据/文件存储。如何在包含应用程序及其扩展程序之间创建/使用共享应用程序组容器作为缓存存储?这甚至可能吗?
答案 0 :(得分:0)
是的,你走在正确的轨道上。这是可能的。
在主应用目标和WatchKit扩展程序目标的Capabilities
标签中,添加一个应用程序组,例如名称为group.myWatchDefaults
。
然后你可以访问这样的默认值:
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.myWatchDefaults"];
添加数据:
[defaults setObject:[NSNumber numberWithBool:true] forKey:@"myBoolVariable"];
要检索数据:
bool watchAppOpenedBefore = [[defaults objectForKey:@"myBoolVariable"] boolValue];
确保在更改默认值后使用synchronize
:
[defaults synchronize];
有时使用应用程序组在Watch应用程序与其父应用程序之间同步NSUserDefaults并不适用于使用Xcode的模拟器。但是,它适用于实际设备(iPhone和Apple Watch)。因此,这似乎是模拟器中的一个错误。