使用 NSUserDefaults 从父级获取数据到 WatchKit
Get Data from Parent to WatchKit with NSUserDefaults
几天以来,我一直在尝试从父级获取一些数据到我的 WatchKitApp。我向父级、WatchApp 和 WatchApp Extension 添加了一个组。然后我使用这段代码将数据保存在 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)")
我认为代码和设置是正确的。我不知道我做错了什么。
确保您的套件名称与您已经为您的群组设置的群组名称相符。要查找您的组名称,请转到项目编辑器,select 您的应用程序作为目标并转到功能。展开应用程序组单元格并在那里查找名称。
1:
2:
如果您使用的是 watchOS 2.0,则不再支持共享组,您必须改用 Watch Connectivity 框架。在此处查看我对类似问题的回答:Whosebug。com/questions/30851729/… 我建议现在切换,因为 OS 将在秋季发布。 – rmp 15 小时前
是的,这是我的问题,谢谢 :)
几天以来,我一直在尝试从父级获取一些数据到我的 WatchKitApp。我向父级、WatchApp 和 WatchApp Extension 添加了一个组。然后我使用这段代码将数据保存在 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)")
我认为代码和设置是正确的。我不知道我做错了什么。
确保您的套件名称与您已经为您的群组设置的群组名称相符。要查找您的组名称,请转到项目编辑器,select 您的应用程序作为目标并转到功能。展开应用程序组单元格并在那里查找名称。
1:
2:
如果您使用的是 watchOS 2.0,则不再支持共享组,您必须改用 Watch Connectivity 框架。在此处查看我对类似问题的回答:Whosebug。com/questions/30851729/… 我建议现在切换,因为 OS 将在秋季发布。 – rmp 15 小时前
是的,这是我的问题,谢谢 :)