Сумма суммы суммы ячейки просмотра таблицы - PullRequest
0 голосов
/ 03 мая 2020

У меня есть tableView для пользователя, чтобы увидеть транзакцию selectedAccount. В моей транзакции будет отображаться сумма транзакции и остаток после транзакции, произведенной с объектами области. Я ожидаю, что в каждой ячейке будет баланс после транзакции, отображаемой в UILabel. И я не мог понять, какие логики c необходимы для того, чтобы это сработало.

class Account : Object {

    var ofTransactions = List<Transaction>()
    var direction: Int16 = 0

    @objc dynamic var name : String = ""
    @objc dynamic var info : String = ""
    @objc dynamic var balance : String = ""

//MARK: - Transaction Section
class Transaction : Object {
    ///Child of Transaction
    var parentAccount = LinkingObjects(fromType: Account.self, property: "ofTransactions")

    @objc dynamic var categoryType : Category?
    @objc dynamic var amount : String = ""
    @objc dynamic var date : Date?


}
//MARK: - Transaction Category Section
enum CategoryType : Int, CaseIterable {
    case income = 0
    case expense = 1
    case openingBalance = 2

    init?(id : Int) {
        if id < CategoryType.allCases.count {
            self = CategoryType.allCases[id]
        } else {
            return nil
        }
    }
}



class Category : Object {
    @objc dynamic var icon : String = ""
    @objc dynamic var categoryTypeID : Int = CategoryType.income.rawValue
    @objc dynamic var name : String = ""
    @objc dynamic var categoryID : Int = 0
// Example
tableViewCell At indexpath.
Row 0 Information
CategoryType : Income
Amount : + 1000
Balance : = 1000

Row 1 Information
CategoryType : Expense
Amount : -500
Balance : = 500 (row1 - row0)

Row 2 Information
CategoryType : Expense
Amount : -200
Balance : = 300 (row2 - row1)


// Outlets

@IBOutlet weak var categoryLabel: UILabel!
   @IBOutlet weak var dateLabel: UILabel!
   @IBOutlet weak var amountTF: CurrencyField!

   //This is not under realm Object Transaction()
   @IBOutlet weak var balanceLabel: UILabel!

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "TransactionCell", for: indexPath) as! TransactionTableViewCell
        if let transCell = getTransactions?[indexPath.row] {
            cell.categoryLabel.text = transCell.categoryType?.name
            cell.dateLabel.text = transCell.date?.toMMMdString()


            //Implementation of currency format to amount TextField
            cell.amountTF.text = transCell.amount
            cell.amountTF.locale = Locale(identifier: selectedAccount.currency!.localeId)

      /*
            let indexAccount0 = getTransactions[indexPath.row].amount
            let indexAccount1 = getTransactions[indexPath.row + 1].amount
            print("indexAccount 0 : \(indexAccount0)")
            print("indexAccount 1 : \(indexAccount1)")

            let sum1 = Double(indexAccount0)
            let sum2 = Double(indexAccount1)
            let totalSum = sum1! + sum2!
            print("sum1 : \(sum1)")
            print("sum2 : \(sum2)")

            print("totalsum : \(totalSum)")
            */

...