Стоит ли беспокоиться о коллизиях в NSUserDefaults? - PullRequest
0 голосов
/ 02 июня 2009

В приложении, над которым я работаю, я генерирую имя пользователя и пароль и сохраняю их в [NSUserDefaults standardUserDefaults]. Я знаю, что есть некоторая общесистемная информация, которую вы можете получить оттуда; Означает ли это, что все приложения на телефоне имеют доступ ко всему там? В настоящее время я использую префикс используемых там ключей с некоторыми символами, связанными с именем моего приложения, чтобы избежать конфликта с другими приложениями, но необходимо ли это? И если так, есть ли лучший способ избежать таких столкновений?

Ответы [ 3 ]

8 голосов
/ 02 июня 2009

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

2 голосов
/ 02 июня 2009

Нет. NSUserDefaults не для всей системы. Назовите их как хотите, все будет хорошо. :)

1 голос
/ 02 июня 2009

NSUserDefaults использует абстрактную концепцию «путей поиска» для поиска значений по умолчанию. Если вы не настроите его, стандартный объект по умолчанию для пользователя будет выглядеть в трех местах; аргументы запуска, настройки вашего приложения и системные настройки (например, параметры глобальной локализации). Вы также можете вручную добавить идентификаторы для других путей поиска, если вы хотите поделиться одинаковыми настройками между несколькими приложениями (я не пробовал это с iPhone, поэтому я не уверен, доступен ли он на Cocoa Touch или если может сделать это только на OS X).

Возможно, у вас может возникнуть конфликт с одним из общесистемных предпочтений, но, поскольку сначала ищется путь поиска вашего приложения, проблема не возникает.

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