iPhone - как сохранить пользовательские настройки из приложения?

Это работает для меня !!

library(rvest)
URL <- 'https://en.wikipedia.org/wiki/List_of_countries_by_intentional_homicide_rate'
table <- URL %>%  
  read_html %>% 
  html_nodes("table")  %>% 
  .[[4]] %>% 
  html_table(trim=TRUE)

таблица

    Country (or dependent territory,subnational area, etc.)   Region                 Subregion
1                                                                                             
2                                                   Burundi   Africa            Eastern Africa
3                                                   Comoros   Africa            Eastern Africa
4                                                  Djibouti   Africa            Eastern Africa
5                                                   Eritrea   Africa            Eastern Africa
6                                                  Ethiopia   Africa            Eastern Africa
7                                                     Kenya   Africa            Eastern Africa
8                                                Madagascar   Africa            Eastern Africa
9                                                    Malawi   Africa            Eastern Africa
10                                                Mauritius   Africa            Eastern Africa
9
задан Ilya Suzdalnitski 25 April 2009 в 17:56
поделиться

2 ответа

NSUserDefaults - лучшее место для таких настроек.

16
ответ дан 4 December 2019 в 09:38
поделиться

В моем заголовочном файле я мог бы добавить следующее:

@interface myAppDelegate : NSObject <UIApplicationDelegate> {
  ...
  NSString *databaseName;
}
extern NSString * const kDefaultDatabaseName;
extern NSString * const kAppDatabaseNameKey;

В В моем файле реализации я добавил бы следующее:

NSString * const kDefaultDatabaseName = @"myDefaultDatabaseName";
NSString * const kAppDatabaseNameKey = @"kAppDatabaseNameKey";

@implementation myAppDelegate

+ (void) initialize {
  if ([self class] == [MyAppDelegate class]) {
    UIApplication* myApp = [UIApplication sharedApplication];

    NSString *defaultDatabaseName = kDefaultDatabaseName;
    NSMutableDictionary *resourceDict = [NSMutableDictionary dictionary];
    [resourceDict setObject:defaultDatabaseName forKey:kAppDatabaseNameKey];
  }
}

- (void) applicationDidFinishLaunching:(UIApplication *)application {
  ...
  databaseName = [[NSUserDefaults standardUserDefaults] stringForKey: kAppDatabaseNameKey];
}

...

- (void) applicationWillTerminate:(UIApplication *)application {
  ...
  [[NSUserDefaults standardUserDefaults] setObject:databaseName forKey:kAppDatabaseNameKey]
}

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

Когда приложение завершает запуск, элемент databaseName принимает значение, установленное в словаре NSUserDefaults . Это может быть kDefaultDatabaseName или любое другое, до которого оно было обновлено после запуска приложения.

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

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

Вам не нужно ждать завершения приложения, прежде чем записывать это обновление в словарь. Например, вы можете сделать это сразу после того, как пользователь изменит databaseName на что-то новое. Но это зависит от вас.

databaseName примет новое обновленное значение.

Вам не нужно ждать завершения приложения, прежде чем записывать это обновление в словарь. Например, вы можете сделать это сразу после того, как пользователь изменит databaseName на что-то новое. Но это зависит от вас.

databaseName примет новое обновленное значение.

Вам не нужно ждать завершения приложения, прежде чем записывать это обновление в словарь. Например, вы можете сделать это сразу после того, как пользователь изменит databaseName на что-то новое. Но это зависит от вас.

6
ответ дан 4 December 2019 в 09:38
поделиться