Ответ 1
Вы должны установить значение "Значение по умолчанию" как "1" - "Just Item 0" из списка "Значения".
У меня есть параметр множественного значения (местоположение), определенный в моем наборе параметров для приложения.
Заголовки определяются как длинные заголовки, например "Лондон", а соответствующая часть значения определяется как "1".
[EDIT]
Чтобы развернуть этот вопрос, я добавлю дополнительную информацию о настройке нескольких значений:
Как получить заголовок LONDON в Item 0. Как описано выше, когда я возвращаю объектForKey или valueForKey, я всегда получаю 1. Я хочу отобразить строку "LONDON" из названия в метке в приложении, но использовать значение 1 в основных данных. Примечание. Я установил значение в настройках до того, как приложение запустится, чтобы оно вернуло значение, но значение всегда равно 1, поскольку Заголовок не кажется доступным.
Вы должны установить значение "Значение по умолчанию" как "1" - "Just Item 0" из списка "Значения".
Настройки местоположения как многозначное значение - это NSDictionary. Поэтому выполните следующие действия:
NSDictionary *location = [[NSUserDefaults standardUserDefaults] valueForKey:@"locationSettings"];
NSString *value = (NSString *)location;
Передайте значение местоположения как NSString, потому что вы знаете, что строка должна быть возвращена.
Затем вы можете обрабатывать результат как строку. Возвращаемая переменная value - это то, что написано в разделе значений. В вашем случае, если вы выберете "Лондон", вы получите значение "1" обратно в виде строки.
Я столкнулся с подобной ситуацией и ответил на вопрос, что это поможет кому-то.
Если я правильно понял вопрос, когда пользователь выбирает Лондон из настроек, значение по умолчанию будет равным 1. Когда вы читаете набор параметров для определения locationSetting, вы получаете значение 1, а не LONDON, но вы хотите, чтобы "LONDON" в вашем кода, а не 1. Это невозможно в текущей структуре вашего plist. введите значение по умолчанию вместо словаря, а затем вы можете иметь как названия, так и значения внутри этого словаря. вы можете получить текст выбранного значения.
Если мое понимание вашего вопроса верное, вы спрашиваете, как вы можете получить ввод ключа словаря местоположения для выбранного пользователем значения.
Для словарей нет такого одноразового метода.
Но есть способ добиться того же результата, манипулируя allKeys
, как показано ниже:
NSDictionary *location = [[NSUserDefaults standardUserDefaults] valueForKey:@"locationSettings"];
NSArray *keys = [location allKeys];
NSString *locationIdentifier = [keys objectForIndex:[location valueForKey:@"LONDON"]];
Это приведет к тому, что строка "LONDON"
будет сохранена в переменной locationIdentifier
.
Так что последняя строка, назначение строки, может быть изменена, чтобы просто иметь objectForIndex:0
, но это не то, что я пробовал раньше, поэтому я не уверен.