Каков наилучший способ обработки булевых значений, которые происходят из настройки UISwitch, и хранятся в NSMutableDictionary, который сохраняется в каталоге пользователя в качестве постоянных настроек? В частности, каков наилучший способ сохранить логические значения, отличные от числовых значений в NSMutableDictionary, которые записываются и читаются из файловой системы?Лучший способ справиться с постоянными булевыми в plist?
========
добавил: Благодаря Adrian и Бена. Таким образом, результат заключается в том, что если он хранится через [NSNumber numberWithBool:] (это то, что я делал), нет никакого удобного способа определить, возникло ли это значение как логическое значение, правильно?
Вторая часть этого заключается в том, что NSMutableDictionary, который я храню, изначально создается путем создания его с помощью plist с булевыми значениями. Эти значения имеют класс NSCFBoolean при первом чтении. Сейчас моя стратегия заключается в сравнении значения, с которым я работаю в словаре, с соответствующей записью в plist.
Причина в том, что я создаю элементы интерфейса «на лету», чтобы позволить пользователю манипулировать этими значениями, и я связываю булевы с UISwitch. Если я потеряю исходный класс, преобразовывая его в число, я получаю неуместный элемент пользовательского интерфейса.
Я рассматриваю замену массивов как сохраненное значение, где первым значением является сохраненное значение, а остальные записи - это выбор: где существуют два варианта, он рассматривается как логический ... в других случаях, они служат в качестве значений выбора. Но это кажется громоздким, если оно надежным.
Любые идеи приветствуются ...
Да, есть способ: использовать сообщение «objCType» в NSNumber. Он возвращает строку C: «q» для целых чисел, «c» для booleans, «d» для парных. Я отредактировал свой ответ ниже с помощью фрагмента кода, который показывает, как вы можете это видеть. –