我的应用有以下目标:
所有这些目标都有" App Group"选择正确组的功能。在iOS主应用程序中,我同步设置:
NSUserDefaults * sharedDefaults = [[NSUserDefaults alloc]initWithSuiteName:@"group.foo.bar"];
if([sharedDefaults respondsToSelector:@selector(setObject:forKey:)]){
// Example Value
[sharedDefaults setObject:@"TestString" forKey:@"TestString"];
[sharedDefaults synchronize];
}
今日推广使用以下内容来获取设置,其工作正常:
NSUserDefaults * defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.foo.bar"];
NSLog(@"String: %@", [defaults stringForKey:@"TestString"]);
// String: TestString
手表扩展程序使用相同的代码行来获取今天扩展名的设置,但它不起作用。在控制台中,我看到String: (null)
。我做错了什么?
答案 0 :(得分:0)
您是将Watch目标创建为watchOS WatchKit应用程序(watchOS 2)还是iOS应用程序扩展(watchOS 1)?如果定位到watchOS 2,则根据transition guide:You cannot rely on a shared group container to exchange files with your iOS app. Fetching files involves transferring them wirelessly to Apple Watch.
答案 1 :(得分:0)
请参阅settings bundle not working on watchOS 2显然,对于使用“偏好设置”可以做什么和不能做什么,文档并不清楚,我发现的唯一方法是确保我复制所需的用户默认值并保持手动同步( NSUserDefaults not working on Xcode beta with Watch OS2)。