Определение структуры базы данных области (Swift) - PullRequest
0 голосов
/ 02 сентября 2018

Я нахожусь в процессе создания приложения, которое будет отображать список акций, которые пользователь сохраняет в tableView. Это также позволит пользователю добавлять или удалять элементы из своих избранных. Мне нужна помощь в определении структуры базы данных и настройке для добавления и постоянного обновления любимых акций пользователя.

В настоящее время у меня есть структура StockData, которая работает с моим tableView, и кнопка для добавления в список пользователей:

struct StockData {
    let currentPrice: Double    
    // meta data
    let name: String
    let ticker: String
    let interval: String
    let lastRefreshed: String
    let change: Double 
}

// In an actual ViewController
@IBAction func addButtonClicked(_ sender: Any) {
    print("Add clicked")
    // Handle adding the item to the user's list
}

Теперь, что касается моей текущей модели области, у меня есть:

class User: Object {
    @objc dynamic var name = ""
    @objc dynamic var id = ""

    var stockFavs = List<StockItem>()
}

class StockItem: Object {
    @objc dynamic var currentPrice: Double = 0.0
    // meta data
    @objc dynamic var name = ""
    @objc dynamic var ticker = ""
    @objc dynamic var interval = ""
    @objc dynamic var lastRefreshed = ""
    @objc dynamic var change: Double = 0.0
}

// Setting up the user and creating test values
        let newUser = User()
        newUser.name = "John Smith"
        newUser.id = "coolId123"

        var stockArr = List<StockItem>()
        for i in 0..<12 {
            let item = StockItem()
            item.name = "Microsoft Corporation"
            item.change = -3.55
            item.currentPrice = 123.45
            item.interval = "1day"
            item.lastRefreshed = "Now"
            item.ticker = "MSFT"
            stockArr.append(item)
        }

        newUser.stockFavs = stockArr

        try! realm.write {
            realm.add(newUser)
        }

До сих пор я был в состоянии создать объект пользователя для текущего пользователя устройства и добавить тестовые значения, но я не уверен, как реализовать постоянное обновление области (метод будет иметь self.tableView.reloadData(), но кроме этого (Я не в курсе) в сочетании с возможностью добавлять StockItem в массив пользователя.

Любая помощь будет высоко ценится!

1 Ответ

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

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

let button = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: 100)
button.addTarget(self, action: #selector(add), for: .touchUpInside)

func add() {
  let currentData = [MyFakeData1, MyFakeData2, etc.]
  try! realm.write {
    realm.add(currentData)
  }
  // You need to get the updates in the database
  // You could have an array in your model that you update and then append all
  // the new items to it and only do database lookups when you restart the 
  // device
  update()
}

func update() {
  let realm = try! Realm()
  var newArray = realm.objects(StockItem.self)
  myViewController.modelArray = newArray
  table.reloadData()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...