Как указывает Мэтт, ваши данные имеют тип Dictionary, он же [String: Any]. Всякий раз, когда вы сохраняете его в UserDefaults, он перезаписывается, потому что вы пишете на тот же ключ. Если вы хотите добавить больше данных к тому же ключу, вам придется преобразовать свой словарь в массив словарей: [[String: Any]]. Затем вы можете получить доступ к отдельным словарям путем перечисления или доступа к конкретному индексу, который вас интересует.
Другой способ - сохранить каждый фрагмент данных в отдельном ключе, например «FoodArraySave1», «FoodArraySave2. "," FoodArraySave3 ". Это, вероятно, более сложный и менее эффективный процесс.
Это, вероятно, то, что вы хотите сделать:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
var myFoodData: [[String: Any]] = []
let foodArray: [String: Any] = ["Title": "Eggs", "QTY": 18, "Price": 5.50]
let foodArray2: [String: Any] = ["Title": "Bacon", "QTY": 12, "Price": 12.50]
myFoodData.append(foodArray)
UserDefaults.standard.set(myFoodData, forKey: "FoodArraySave")
var getFoodData = UserDefaults.standard.object(forKey: "FoodArraySave") as! [[String: Any]]
print(getFoodData[0])
myFoodData.append((foodArray2))
UserDefaults.standard.set(myFoodData, forKey: "FoodArraySave")
getFoodData = UserDefaults.standard.object(forKey: "FoodArraySave") as! [[String: Any]]
print(getFoodData[1])
}