Я делаю финансовое приложение. Я сохраняю данные с областью, но я не могу понять одну вещь. После того, как пользователь ввел, сколько денег он потратил, он может выбрать категорию: Супермаркет, Транспорт и другие. Итак, вопрос в том, как я могу сохранить данные пользователя по категориям. RealmModel:
class Items: Object {
@objc dynamic var personID = UUID().uuidString
@objc dynamic var categoryAmount = ""
@objc dynamic var categoryName = ""
override static func primaryKey() -> String? {
return "personID"
}
}
class RealmModel {
static let shared = RealmModel()
private let realm = try! Realm()
let myPrimaryKey = "Primary-Key"
func addAmount(newItem: String) {
let categoryAmount = realm.object(ofType: Items.self, forPrimaryKey: myPrimaryKey)
let new = Items()
new.personID = "My-Primary-Key"
new.categoryAmount = newItem
try! realm.write {
realm.add(new, update: .modified)
}
}
func updateAmount(editedItem: Items, newItem: String) {
try! realm.write {
editedItem.categoryAmount = newItem
}
}
func getAmount() -> Items? {
let amount = realm.objects(Items.self).last
return amount
}
func setAmount(newItem: String) {
if let data = getAmount() {
updateAmount(editedItem: data, newItem: newItem)
} else {
addAmount(newItem: newItem)
}
}
}
Кнопка:
@IBAction func supermarketBTN(_ sender: Any) {
RealmModel.shared.setAmount(newItem: "\((Double(exileAmount?.categoryAmount ?? "" ) ?? 0) + (Double(self.amountTF.text ?? "") ?? 0))")
self.exileAmount = RealmModel.shared.getAmount()
delegate?.updateAmount(amount: self.amountTF.text ?? "")
dismiss(animated: true, completion: nil)
}
Как мне использовать categoryName для сохранения данных по категориям?