Я неправильно понимаю NSUserDefaults initWithUser? - PullRequest
1 голос
/ 18 февраля 2012

То, что я ожидаю, произойдет:

Я создаю объект NSUserDefaults с именем пользователя (NSString по моему выбору?), И когда я сохраняю значения по умолчанию, он сохраняет эти значения по умолчанию только для этого пользователя..

Что на самом деле происходит:

Когда я пытаюсь создать NSUserDefaults для разных имен пользователей, они всегда сохраняются в одном и том же com.companyname.appname.plist файл, поэтому он игнорирует пользовательскую часть и просто сохраняет в масштабе приложения.

Мой вопрос:

Работает ли это на iOS или только на OSX?Что мне не хватает?Разве я не должен получить другой файл plist для пользователя?Я просмотрел один .plist, который он создает в xcode, и там нет ничего, что указывало бы по умолчанию, что оно принадлежит определенному имени пользователя.

Ответы [ 3 ]

7 голосов
/ 18 февраля 2012

Да, вы неправильно это понимаете, но на самом деле это метод с плохим названием.

По сути, это позволяет приложениям, работающим от имени root (или суперпользователя), получать доступ к UserDefaults для других пользователей.

В этом случае пользователь - это пользователь Unix, а не произвольное имя раздела, которое вы (разработчик) выбираете.

1 голос
/ 18 февраля 2012

Я уверен, что NSUserDefaults для приложения, а не для пользователя. Это настройки по умолчанию для этого приложения. Теперь вам нужно смоделировать его, чтобы сохранить настройки для нескольких пользователей. Скажем, используя NSDictionary

0 голосов
/ 26 июля 2014

NSUserDefaults объединяет значения из разных источников.

Если вы используете управляемые приложения на предприятии, предпочтения будут исходить от системы управления устройствами предприятия.

Само приложение будет иметь свои собственные встроенные настройки по умолчанию.

Кроме того, приложение может читать и устанавливать приложения для каждого пользователя;они хранятся в пользовательской библиотеке / настройках.

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

И, как очень необычный особый случай, приложения, работающие как пользователь root, а не как отдельный пользователь, могут получить доступ к каждому предпочтению пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...