在使用 NSUserDefaults 设置/接收数据时进行真正的基本测试。我的 iPhone 应用程序工作正常,数据设置正常,但在 watch 上,它显示为空。
我为两者启用了应用程序组,并使用同一个组验证了它们是相同的。每一个的授权文件都是一样的。
在 ViewController.m 中
defaults = [[NSUserDefaults alloc] initWithSuiteName"com.defaultmethod.share"];
[defaults setObject:playerName forKey"playerName"];
[defaults synchronize];
在 InterfaceController.m 中
- (void)awakeWithContextid)context {
[super awakeWithContext:context];
// Configure interface objects here.
defaults = [[NSUserDefaults alloc] initWithSuiteName"com.defaultmethod.share"];
[defaults synchronize];
}
- (void)willActivate {
// This method is called when watch view controller is about to be visible to user
[super willActivate];
NSLog(@"playerName: %@", [defaults objectForKey"playerName"]);
}
我得到的只是:
玩家姓名空)
我必须遗漏一些如此明显的东西。当我在 iphone 端 NSLog 时,结果很好,所以我知道它保存正确。
Best Answer-推荐答案 strong>
您需要确保以下设置处于正确位置。
- 检查 Entitlement.plist 文件以获取您的应用程序和 watch 套件
扩展名,它应该具有相同的应用程序组标识符。
- 确保您在信息部分选择了正确的开发团队
每个目标。
- 您已安装正确的移动配置文件
您可以在 app 和 watchkit 扩展目标的功能部分测试这些设置。
关于ios - WatchKit NSUserDefaults 为空,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/30225125/
|