記帳App|Part1. 記憶體資料存取
Published in
May 19, 2021
儲存、讀取記憶體資料,Computed Observer/Computed Property
因平時沒使用記帳app的習慣,找了線上幾款記帳APP參考並模擬做出主要功能,好處是節省了構思畫面的時間,當然也把所有時間都栽在了程式功能呈現裡。
ABOUT APP
紀錄收入及支出,並將資料儲存於記憶體(包含新增、修改、刪除功能),顯示當日紀錄資料,及所有資料圖表數據化。
*於6/3更新將資料存於CoreData,在文章 Part5,連結在本文末。
主頁面: 皆使用 Navigation Controller
記帳本/輸入資料/圖表分析次頁面:
支出類別選擇 /帳號選擇 / 顯示收據照片
APP 架構
記憶體資料存取 #Data Container
可寫入的資料為:數字,Data,Dictionary,Array,Date,字串,URL。
🌟 檔案儲存路徑
Data Container 資料可修改 FileManager.default.urls
Bundle Container 資料唯讀,不可修改 Bundle.main.url
🌟 儲存資料至記憶體
將自訂型別使用 JSONEncoder() 編碼成 Data,並.write
寫入
🌟 讀取記憶體資料
將 Data 使用 JSONDecoder() 解碼成 自訂型別
APP 實作
使用 Computed Observer 觀察 當資料變動時執行存檔。
即不需每次資料變動時,都要手動寫入存檔,而導致有地方遺漏沒寫到。
var allExpenseItems = [ExpenseData]() {
didSet {
ExpenseData.saveExpenseData(expenseDatas: allExpenseItems)
}
}
當讀取畫面時,讀取資料。
override func viewDidLoad() {
super.viewDidLoad()
if let allItems = ExpenseData.loadExpenseDatas(){
self.allExpenseItems = allItems
}
updateUI()
}