2010-12-02 2 views
7

Итак, я сохраняю пользовательские настройки в файле plist и делаю это, добавляя данные в NSArray. Этот подход работает для меня.Как сохранить логическое значение в NSArray?

Моя проблема в том, что теперь я добавляю UISwitch к настройкам, и мне было интересно, как сохранить их состояние ВКЛ/ВЫКЛ в массиве, чтобы я мог получить доступ к этому состоянию в более позднее время?

Я добавляю данные в массив так:

[array addObject: mySwitch.on]; 

Тогда я пытаюсь установить состояние, как это:

[mySwitch setOn:[array objectAtIndex:0]]; 
+0

возможных дубликат [NSArray, заполненный bool] (http://stackoverflow.com/questions/3889186/nsarray-filled-with-bool) – BoltClock 2010-12-02 20:51:56

+1

Вы используете `NSNumber` для хранения логического значения и получения его - вроде как вы обертываете gif t в поле перед отправкой его вашему родственнику :) См. мой ответ, как использовать его с вашим `UISwitch`. – BoltClock 2010-12-02 20:56:42

ответ

32

NSArray С принимает только в (id) с (т.е. Objective-C указывает на объекты), вы можете хранить объекты только.

Распространенный способ сохранить значение BOOL в объекте находится с NSNumber класса:

[array addObject:[NSNumber numberWithBool:mySwitch.on]]; 

Для доступа к нему, возьмите что NSNumber объекта и отправить ему boolValue сообщения:

[mySwitch setOn:[[array objectAtIndex:0] boolValue]]; 
Смежные вопросы