Rav*_*dal 25 xcode objective-c ios xcode6 watchkit
我想为Apple手表制作一个测试应用程序,您可以在手机上设置一些String,然后它将显示在Apple Watch上.我决定使用NSUserDefaults类来存储这些数据.
在我的iPhone视图控制器中,我有一个方法,它将输入和存储带入本地存储:
- (IBAction)saveInfo:(id)sender {
NSString *userInput = [myTextField text];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:userInput forKey:@"savedUserInput"];
[defaults synchronize];
self.myLabel.text = [defaults stringForKey:@"savedUserInput"];
}
Run Code Online (Sandbox Code Playgroud)
在我的监视接口控制器中,我有一个检索数据并显示它的方法:
- (IBAction)showText2 {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults synchronize];
self.myLabel2.text = [defaults stringForKey:@"savedUserInput"];
}
Run Code Online (Sandbox Code Playgroud)
除了某些原因,我试图检索的数据显示为null,标签没有更新.
Dav*_*ong 31
+standardUserDefaults
返回NSUserDefaults
仅保存当前进程信息的对象.
如果要创建NSUserDefaults
在iOS应用程序和其中一个扩展程序之间共享数据的对象,则需要设置应用程序组容器并将其用作共享信息的基础.
从链接的文档:
启用应用程序组后,应用程序扩展及其包含应用程序都可以使用NSUserDefaults API共享对用户首选项的访问权限.要启用此共享,请使用initWithSuiteName:方法实例化新的NSUserDefaults对象,并传入共享组的标识符.例如,共享扩展程序可能会使用以下代码更新用户最近使用的共享帐户:
Run Code Online (Sandbox Code Playgroud)// Create and share access to an NSUserDefaults object. NSUserDefaults *mySharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.example.domain.MyShareExtension"]; // Use the shared user defaults object to update the user's account. [mySharedDefaults setObject:theAccountName forKey:@"lastAccountName"];
注意:使用手表OS2,您不能再使用共享组容器.
归档时间: |
|
查看次数: |
12694 次 |
最近记录: |