我在iOS应用程序中存储NSUserDefault
字符串并在WatchOS上检索它们时遇到问题。
我使用以下教程创建App Groups&将NSUserDefaults
用于应用群组:http://www.atomicbird.com/blog/sharing-with-app-extensions
最后,在创建似乎没有任何配置错误的应用组之后,然后尝试检索我存储的字符串时,该值仍为null
。 (即使我存储的值绝对不是null
)
这是我的存储代码(在HomeViewController.m中):
NSUserDefaults *myDefaults = [[NSUserDefaults alloc]
initWithSuiteName:@"APP GROUP ID"];
[myDefaults setObject:totalDonatedString forKey:@"donatedForWatch"];
并检索(InterfaceController.m
中的willActivate
):
NSUserDefaults *myDefaults = [[NSUserDefaults alloc]
initWithSuiteName:@"APP GROUP ID"];
NSString *donatedWatchString = [myDefaults objectForKey:@"donatedForWatch"];
NSLog(@"%@", donatedWatchString);
[_totalDonatedLabelWatch setText:donatedWatchString];
我是iOS dev / Obj的新手,所以请帮忙!
答案 0 :(得分:0)
通过使用“应用程序组”来共享数据,您的方法很安静。创建一个包含在主应用目标中的头文件。定义一个用于标识您的应用组的宏。例如,声明Constant.h
,其中包含以下内容
#ifndef CONSTANT_H
#define CONSTANT_H
#define SHARED_APP_GROUP @"name_of_your_app_group"
#endif
将此文件导入应用程序组的任何位置(在监视应用程序相关文件和主应用程序文件中)。
答案 1 :(得分:0)
对于WatchOS 2及更高版本:https://telliott.io/2015/08/11/how-to-communicate-between-ios-and-watchos2.html
该指南包含Swift和Obj-C的说明
感谢@dan!