UserDefaults лучше всего использовать для хранения небольших объемов данных, а не массивов.
Каждый раз, когда вы вызываете ключ, файл весь plist, в котором он хранится, вызывается в память.
например)
let volumeLevel = UserDefaults.Standard.integer(forKey: "volume")
Итакесли вы храните массив, который увеличивается каждый раз, когда пользователь играет, в конечном итоге у вас будут проблемы с памятью.
В приведенном выше примере использование UserDefaults для хранения High Score и UserName - это хорошо, но я бы рекомендовал использоватьCoreData (или что-то еще) для хранения массива, содержащего данные для каждого запуска игры.