Подтвердить что ты не робот

Как использовать многозначный заголовок и значение из набора настроек

У меня есть параметр множественного значения (местоположение), определенный в моем наборе параметров для приложения.
Заголовки определяются как длинные заголовки, например "Лондон", а соответствующая часть значения определяется как "1".

[EDIT]

Чтобы развернуть этот вопрос, я добавлю дополнительную информацию о настройке нескольких значений:

this is a screenshot of the multi value setting

Как получить заголовок LONDON в Item 0. Как описано выше, когда я возвращаю объектForKey или valueForKey, я всегда получаю 1. Я хочу отобразить строку "LONDON" из названия в метке в приложении, но использовать значение 1 в основных данных. Примечание. Я установил значение в настройках до того, как приложение запустится, чтобы оно вернуло значение, но значение всегда равно 1, поскольку Заголовок не кажется доступным.

4b9b3361

Ответ 1

Вы должны установить значение "Значение по умолчанию" как "1" - "Just Item 0" из списка "Значения".

Ответ 2

Настройки местоположения как многозначное значение - это NSDictionary. Поэтому выполните следующие действия:

NSDictionary *location = [[NSUserDefaults standardUserDefaults] valueForKey:@"locationSettings"]; 

NSString *value = (NSString *)location; 

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

Затем вы можете обрабатывать результат как строку. Возвращаемая переменная value - это то, что написано в разделе значений. В вашем случае, если вы выберете "Лондон", вы получите значение "1" обратно в виде строки.

Ответ 3

Я столкнулся с подобной ситуацией и ответил на вопрос, что это поможет кому-то.

Если я правильно понял вопрос, когда пользователь выбирает Лондон из настроек, значение по умолчанию будет равным 1. Когда вы читаете набор параметров для определения locationSetting, вы получаете значение 1, а не LONDON, но вы хотите, чтобы "LONDON" в вашем кода, а не 1. Это невозможно в текущей структуре вашего plist. введите значение по умолчанию вместо словаря, а затем вы можете иметь как названия, так и значения внутри этого словаря. вы можете получить текст выбранного значения.

Ответ 4

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

Для словарей нет такого одноразового метода. Но есть способ добиться того же результата, манипулируя allKeys, как показано ниже:

NSDictionary *location = [[NSUserDefaults standardUserDefaults] valueForKey:@"locationSettings"]; 
NSArray *keys = [location allKeys];
NSString *locationIdentifier = [keys objectForIndex:[location valueForKey:@"LONDON"]];

Это приведет к тому, что строка "LONDON" будет сохранена в переменной locationIdentifier. Так что последняя строка, назначение строки, может быть изменена, чтобы просто иметь objectForIndex:0, но это не то, что я пробовал раньше, поэтому я не уверен.