在使用 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 时,结果很好,所以我知道它保存正确。
您需要确保以下设置处于正确位置。
您可以在 app 和 watchkit 扩展目标的功能部分测试这些设置。
关于ios - WatchKit NSUserDefaults 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30225125/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |