доступ к NSUserDefaults в cellForRow (at: IndexPath) в Swift, использование памяти - PullRequest
0 голосов
/ 02 октября 2018

Требуется ли много памяти для извлечения данных из NSUserDefaults в методе cellForRow(at:IndexPath?Код, показанный ниже:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  let recentFavorite = UserDefaults.standard.string("recentlyStoredFavorite")
  if self.favorite == recentFavorite {
    cell.imgForFavorite = self.imgForFavorite
  }
}

Или я должен сохранить значение из UserDefaults в viewWillAppear и использовать его в пределах cellForRow?

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

1 Ответ

0 голосов
/ 02 октября 2018

Согласно Apple

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

Вы должны быть в порядке, чтобы получить информацию в cellForRow, так как она, вероятно, находится в словарев памяти (допущение), полученное с помощью ключа, который вы предоставляете, однако, по мнению Вадиана, вы можете просто поместить его в модель или свойство и исключить предположение.

Кроме того, подумайте, будут ли эти данные изменены другим процессом и нужно ли вам соблюдать ключ UserDefaults.

...