NSUserDefaults setObject и IntegerForKey, используйте один и тот же ключ, если нет, как я могу обойти это? - PullRequest
0 голосов
/ 21 декабря 2011

Мне нужно перебрать все ключи в моих NSUserDefaults и перенести их в другой формат.Позже я захочу передать их обратно программным способом.

У меня много ключей, и у меня нет никакого способа в моем соглашении об именах или с помощью других средств, чтобы определить, использовал ли я setObject или setInteger и т. Д.

Если я использую setObject, это позволит мне использовать integerForKey для этого ключа?

Если я не хочу, могу ли я использовать вместо этого?

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

Нет, вы не сможете получить правильные объекты, если используете integerForKey:.Однако вы можете получить правильные объекты, если используете objectForKey:.Это потому, что если вы использовали setInteger:forKey:, он автоматически вызывает setObject:forKey:.Итак, найдется объект для ключа.Поэтому вам нужно перебрать ключи, получить объекты с помощью objectForKey: и преобразовать их в нужный вам тип данных.

0 голосов
/ 21 декабря 2011

Я уверен, что использование setObject позволит вам позже использовать integerForKey.

Другим способом может быть добавление plist в ваш проект и сохранение всего там. По сути, это то же самое, что и NSUserDefaults, только вы будете делать все вручную. Вы можете просто прочитать содержимое plist либо в NSArray, либо в NSDictionary (в зависимости от того, что вы выбрали для создания в первую очередь), а затем получить доступ к нужным членам из этого объекта.

Надеюсь, это поможет.

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