Objective c 使用NSUserDefaults从父级获取数据到WatchKit

Objective c 使用NSUserDefaults从父级获取数据到WatchKit,objective-c,swift,nsuserdefaults,watchkit,apple-watch,Objective C,Swift,Nsuserdefaults,Watchkit,Apple Watch,几天以来,我一直试图从我的WatchKitApp的家长那里获取一些数据。我向父级、WatchApp和WatchApp扩展添加了一个组。然后我使用此代码将数据保存在Objective-C中: NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.mygroup"]; [defaults setInteger:5 forKey:@"test"]; [defaults synchron

几天以来,我一直试图从我的WatchKitApp的家长那里获取一些数据。我向父级、WatchApp和WatchApp扩展添加了一个组。然后我使用此代码将数据保存在Objective-C中:

NSUserDefaults *defaults = [[NSUserDefaults alloc]  initWithSuiteName:@"group.mygroup"];
[defaults setInteger:5 forKey:@"test"];        
[defaults synchronize];
然后我尝试从Swift中的WatchKit获取数据:

let defaults = NSUserDefaults(suiteName: "group.mygroup")
let integer = defaults!.integerForKey("test")
print("Test \(integer)")

在我看来,代码和设置是正确的。我不知道我做错了什么。

确保您的套件名称与您为组设置的组名称相符。要查找您的组名,请转到项目编辑器,选择您的应用程序作为目标,然后转到功能。展开“应用程序组”单元格并在那里查找名称

1:

2:


如果您使用的是watchOS 2.0,则不再支持共享组,您必须改用Watch Connectivity framework。请看我对一个类似问题的回答:stackoverflow.com/questions/30851729/…我建议现在就切换,因为操作系统将在秋季推出rmp 15小时前


是的,这是我的问题thx:)

如果您使用的是watchOS 2.0,则不再支持共享组,您必须改用Watch Connectivity framework。请看我对一个类似问题的回答:我建议现在就切换,因为操作系统将在秋季推出。