Как получить значение UISwitch? - PullRequest
22 голосов
/ 10 февраля 2012

Я новичок в программировании на iOS, и у меня проблема.

В настоящее время я работаю с iOS Core Data, и моя проблема в том, что я хочу вставить данные в логический атрибут в базу данных, приняв значение UISwitch.

Проблема в том, что я не знаю, какой метод я должен вызывать (например, .text делает то же самое, но для UITextField).Я сделал небольшой поиск в Google, но безрезультатно.Вот некоторый код:

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

howmany - текстовое поле, важным является UISwitch

Ответы [ 5 ]

22 голосов
/ 10 февраля 2012

Чтобы сохранить его

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

Чтобы получить его

BOOL on = [[newContact objectForKey:@"important"] boolValue];
17 голосов
/ 10 февраля 2012

Вы смотрели на документы для UISwitch? Обычно при поиске информации вы должны сделать документы своей первой точкой вызова, затем переключитесь на Google и затем переполните стек, если вы действительно не можете найти то, что вам нужно.

Требуется свойство @property(nonatomic, getter=isOn) BOOL on, например:

important.isOn

Если у вас нет набора базовых данных для использования примитивов, вам, возможно, придется обернуть это логическое значение в NSNumber:

[NSNumber numberWithBool:important.isOn]
5 голосов
/ 10 февраля 2012

Другие постеры верны, что вам нужно использовать метод isOn для получения значения, однако это возвращает значение BOOL, которое вы не можете напрямую передать в setValue: forKey, потому что этот метод ожидает объект.

Чтобы установить значение для вашего основного объекта данных, сначала оберните его в NSNumber, например:

NSNumber *value = [NSNumber numberWithBool:important.on];
[newContact setValue:value forKey:@"important"];
4 голосов
/ 28 сентября 2015

Я использовал

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

И

[NSString stringWithFormat:@"%@",(self.allNotificationSwitch.isOn ? @"Yes":@"No")];
0 голосов
/ 10 февраля 2012
[newContact setBool:[NSNumber numberWithBool:important.on] forKey:@"important"];
...