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

Сохранить (приватно) Настройки приложения в iOS?

Я знаю NSUserDefaults для сохранения/восстановления пользовательских настроек. Что такое эквивалентный класс для приложения ? Например, приложение может иметь поле "последний прогон"; или он может иметь поле для уникальной идентификации устройства для использования на уровне приложения.

Я намерен сохранить настройки приложения (не пользовательские настройки) из приложения "Настройки", а не сохранять эти настройки в iTunes, Time Machine, {whatever}.

Я получаю много шума для Java и С#, но не для iOS/iPhone/iPad.

4b9b3361

Ответ 1

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

или добавьте settings.plist в свой проект и прочитайте (что вы не меняете позже)

и вы можете использовать как.,

+ (NSDictionary*)getBundlePlist:(NSString *)plistName
{
    NSString *errorDesc = nil;
    NSPropertyListFormat format;
    NSString *plistPath = [[NSBundle mainBundle] pathForResource:plistName ofType:@"plist"];
    NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];
    NSDictionary *temp = (NSDictionary *)[NSPropertyListSerialization
                                          propertyListFromData:plistXML
                                          mutabilityOption:NSPropertyListMutableContainersAndLeaves           
                                          format:&format errorDescription:&errorDesc];
    return temp;
}

+ (id) getPropValue:(NSString *)PropertyName
{   // I am supposing you had add your app preferences on settings.plist.
    return [[Property getBundlePlist:@"settings"] objectForKey:PropertyName];
    //here Property is my class name, then you can use value by 
    //NSString *value = [Property getPropValue:@"setting1"];
}

Ответ 2

NSUserDefaults может использоваться для вашего запроса.

if (![[NSUserDefaults standardUserDefaults] boolForKey:@"shownPrompt"]) {
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"shownPrompt"];
    // Show your prompt or whatever
}

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

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

NSUserDefaults идеально подходит для сохранения таких вещей, как то, что было показано, дата последнего запуска и т.д. Читайте документы здесь: https://developer.apple.com/documentation/foundation/userdefaults

Не откладывайте часть "пользовательские настройки". Вы можете использовать его для сохранения всего, что хотите (до тех пор, пока оно есть или может быть преобразовано в NSObject, которое реализует <NSCoding>, что в основном означает NSString, NSDictionary, NSArray, NSNumber, UITextField, int, float, bool и т.д.).

Просто, чтобы уточнить, материал, который вы положили в NSUserDefaults, ни при каких обстоятельствах не будет автоматически отображаться в приложении "Настройки". Он будет полностью закрыт и скрыт. Чтобы что-то появилось в настройках, вам нужно добавить набор настроек в свое приложение и вручную добавить к нему ключи для каждого значения, которое вы хотите видеть в приложении "Настройки".

Ответ 3

Трудно сказать, что вы просите. Похоже, что NSUserDefaults - это то, что вы ищете, но вы утверждаете, что уже знаете об этом. Итак, какова ваша проблема?