Apple Watch 用のテスト アプリを作成したいと考えていました。このアプリでは、電話に 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"];
}
そして、時計のインターフェイス コントローラーには、データを取得して表示するメソッドがあります。
- (IBAction)showText2 {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults synchronize];
self.myLabel2.text = [defaults stringForKey:@"savedUserInput"];
}
何らかの理由で、取得しようとしているデータが null として表示され、ラベルが更新されていない場合を除きます。