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
Pour le sauvegarder
[newContact setObject:[NSNumber numberWithBool:important.on] forKey:@"important"];
Pour le récupérer
BOOL on = [[newContact objectForKey:@"important"] boolValue];
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]
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"];
J'ai utilisé
[NSString stringWithFormat:@"%d",(self.allNotificationSwitch.isOn ? 0:1)];
Et
[NSString stringWithFormat:@"%@",(self.allNotificationSwitch.isOn ? @"Yes":@"No")];
[newContact setBool:[NSNumber numberWithBool:important.on] forKey:@"important"];