Доступ к Child.plist файла Settings.bundle в приложении iPhone - как? - PullRequest
3 голосов
/ 23 февраля 2010

У меня проблема с доступом к Settings.bundle.

Позвольте мне объяснить, что именно я делаю.

  1. Любой новый шаблон проекта из файла (под iPhone OS) - предпочтительно на основе просмотра.
  2. Теперь Щелкните правой кнопкой мыши по вашему проекту / группе ресурсов.
  3. Выберите Добавить / Новый файл
  4. Под iPhone Os - ресурс - Настройки Bundle.
  5. Назовите его строго "Settings.bundle"

Теперь очень важные шаги.

  1. Разверните Settings.bundle в вашем проекте.
  2. Нажмите на Root.plist
  3. В редакторе - Расширить спецификаторы предпочтений
  4. Удалить пункт 2, пункт 3, пункт 4
  5. Выберите пункт 1, скопируйте и вставьте его.
  6. Изменить элемент 2 'тип (копия элемента 1)
  7. Установить PSChildPaneSpecifier как тип (для item'2)
  8. Установите заголовок как хотите.
  9. Добавить новую пару ключ-значение в этот (элемент 2) словарь.
  10. Set Key = "File" & String = "FontSettings"

Теперь в вышеприведенных шагах я указал «Мне нужна дочерняя панель для настроек» & Настройки дочерней панели будут загружены из FontSettings.plist

Хорошо. Дальнейшие действия.

  1. Теперь щелкните правой кнопкой мыши файл Settings.bundle / en.lproj (просто потому, что нам нужно добавить еще один plist-файл в settings.bundle.
  2. Добавить / Новый файл - в Mac OS x - Выбрать другое -> Список свойств
  3. Имя как FontSettings.plist

Просто для проверки, что файл settings.bundle содержит этот файл или нет.

  1. Откройте ваш проект в Finder.
  2. Щелкните правой кнопкой мыши Settings.bundle
  3. Нажмите, чтобы показать содержимое пакета.
  4. Если он показывает FontSettings.plist в содержимом пакета, то он до сих пор совершенен.

Теперь, для FontSettings.plist

  1. Откройте Root.plist в settings.bundle.
  2. Копировать Stringtable, PreferenceSpecifiers в список FontSettings.plist
  3. Теперь в FontSettings.plist - Добавить настройки по вашему желанию.

Проверка в симуляторе.

  1. Запустить программу и нажать на кнопку. (Чтобы прекратить приложение.)
  2. Перейти в настройки.
  3. Откройте настройки вашего проекта
  4. Вы можете перейти на дочернюю панель.

До сих пор, я полагаю, я выполнил правильные шаги.

Проблема, с которой я сталкиваюсь, сейчас здесь.

Если есть только один Root.plist , мы можем получить прямой доступ к

[[NSUserDefaults standardUserDefaults] stringForKey:@"fName"]

Как и выше.

Но вопрос «Как получить доступ - настройки дочерней панели?»

Я попробовал следующий способ

NSString *str=[[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"bundle"];
NSString *path=[str stringByAppendingPathComponent:@"FontSettings.plist"];
NSDictionary *dFor=[NSDictionary dictionaryWithContentsOfFile:path];

Но проблема в приведенном выше коде такова: «Он просто дает мне одно и то же значение по умолчанию каждый раз, даже после - изменения значений из настроек iPhone - настройки.

Что я должен сделать для доступа к настройкам Child.plist? (этот пользователь установил).

1 Ответ

5 голосов
/ 02 марта 2010

Вы получаете доступ к настройкам дочерней панели точно так же, как настройки корня. Нет разницы между иерархиями в доступе к пользовательским настройкам по умолчанию.

Например, если PSToggleSwitchSpecifier в FontSettings.plist имеет Key, равное isBold, то вы получите доступ к этому параметру с помощью

[[NSUserDefaults standardUserDefaults] boolForKey:@"isBold"]
...