SDK WatchKit pas de la récupération de données à partir de NSUserDefaults
J'ai voulu faire un test d'application pour l'Apple watch dans laquelle vous pouvez définir une Chaîne de caractères sur votre téléphone, puis il sera affiché sur l'Apple Watch. J'ai décidé d'utiliser NSUserDefaults classe pour stocker ces données.
De mon point de vue contrôleur pour l'iPhone, j'ai une méthode qui prend en entrée et les stocke en local de stockage:
- (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"];
}
Et dans ma montre contrôleur d'interface, j'ai une méthode qui récupère les données et les affiche:
- (IBAction)showText2 {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults synchronize];
self.myLabel2.text = [defaults stringForKey:@"savedUserInput"];
}
Sauf pour une raison quelconque, les données que je suis en train de récupérer est indiqué nulle, et l'étiquette n'est pas mis à jour.
- Voir ici -> stackoverflow.com/questions/27025526/...
- Veuillez noter, a partagé NSUserDefaults ne fonctionnera PAS sur WatchOS2. Cette fonctionnalité est spécifique à WatchOS1,
Vous devez vous connecter pour publier un commentaire.
+standardUserDefaults
retourne unNSUserDefaults
objet qui enregistre uniquement les informations pour le processus en cours.Si vous souhaitez créer un
NSUserDefaults
objet de partage des données entre votre application iOS et l'une de ses extensions, alors vous aurez besoin de configurer une application conteneur de groupe et de l'utiliser comme base pour le partage de l'information.De la liés à la documentation:
REMARQUE: Avec regarder OS2 vous ne pouvez plus utiliser le groupe de conteneurs.
@"group.{whatever your group name is}"
IMPORTANT
Avec regarder OS2 vous ne pouvez plus utiliser le groupe de conteneurs. Vous devez utiliser ce débordement de pile réponse.
"Pour OS2 - vous aurez besoin d'utiliser la WatchConnectivity cadres et de mettre en œuvre la WCSessionDelegate."