web-dev-qa-db-fra.com

Comment obtenir la valeur d'un UISwitch?

Je suis un programmeur novice iOS et j'ai un problème. 

Je travaille actuellement sur iOS Core Data et mon problème est que je veux insérer des données dans un attribut booléen d'une base de données en prenant la valeur de UISwitch

Le problème est que je ne sais pas quelle est la méthode à appeler (par exemple .text fait la même chose mais pour UITextField). J'ai fait une petite recherche sur Google mais aucun résultat. Voici du code:

[newContact setValue:howMany.text forKey:@"quantity"]; 
[newContact setValue:important.??? forKey:@"important"]; 

combien est un champ de texte, important est un UISwitch

22
Eristikos

Pour le sauvegarder

[newContact setObject:[NSNumber numberWithBool:important.on] forKey:@"important"]; 

Pour le récupérer

BOOL on = [[newContact objectForKey:@"important"] boolValue];
22
Joel Kravets

Avez-vous consulté la documentation pour UISwitch? En général, vous devriez faire de la documentation votre premier point d’appel lors de la recherche d’informations, puis passez à Google, puis au débordement de pile si vous ne trouvez vraiment pas ce que vous voulez.

Vous voulez que la propriété @property(nonatomic, getter=isOn) BOOL on ressemble à ceci:

important.isOn

Si vous n'avez pas défini de données de base pour utiliser des primitives, vous devrez peut-être envelopper ce booléen dans une NSNumber:

[NSNumber numberWithBool:important.isOn]
17
Paul.s

Les autres affiches indiquent correctement que vous devez utiliser la méthode isOn pour obtenir la valeur. Toutefois, elle renvoie une valeur BOOL que vous ne pouvez pas transmettre directement à setValue: forKey car cette méthode attend un objet.

Pour définir la valeur sur votre objet de données principal, commencez par l'envelopper dans un NSNumber, comme ceci:

NSNumber *value = [NSNumber numberWithBool:important.on];
[newContact setValue:value forKey:@"important"];
5
Nick Lockwood

J'ai utilisé

[NSString stringWithFormat:@"%d",(self.allNotificationSwitch.isOn ? 0:1)];

Et

[NSString stringWithFormat:@"%@",(self.allNotificationSwitch.isOn ? @"Yes":@"No")];
4
Avijit Nagare
[newContact setBool:[NSNumber numberWithBool:important.on] forKey:@"important"];
0
NeverBe