4

应用程序及其扩展之间的数据共享通过通用的 AppGroup 发生。我可以使用共享应用程序组容器作为持久数据/文件存储。如何创建/使用共享应用程序组容器作为包含应用程序及其扩展程序之间的缓存存储?这甚至可能吗?

4

1 回答 1

0

是的,你在正确的轨道上。这个有可能。

Capabilities主应用程序目标和 WatchKit 扩展程序目标的选项卡中,添加一个应用程序组,例如,名称为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];

有时,在使用 Xcode 的模拟器时,使用 App Groups 在 Watch 应用程序与其父应用程序之间同步 NSUserDefaults 不起作用。但是,它适用于实际设备(iPhone 和 Apple Watch)。因此,这似乎是模拟器中的一个错误。

于 2015-05-10T18:19:07.660 回答