台灣最大程式設計社群網站
線上人數
1341
 
會員總數:238830
討論主題:185362
歡迎您免費加入會員
討論區列表 >> iOS APP/ swift 開發 >> [Swift 3]資料全域暫存
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[Swift 3]資料全域暫存
價值 : 0 QP  點閱數:168 回應數:1

樓主

可樂快跑
中級專家
2714 23
4052 756
發送站內信

首先,這邊不是要談UserDefaults這樣的東西。
因為這個東西是會暫用手機的資料儲存而非暫存。
我要講的是app開啟後的執行期的暫存,也就是當app結束後資料是會消失不見的。

通常如果初學看書的話,大都是介紹你如何將本頁的資料傳到下一個ViewController。
但其實有些東西你會期望他在app執行階段能夠一直存在,直到app結束為止。

原本後來我找到的是利用AppDelegate來做一些呼叫其他class或是struct的方式來做全域資料暫存。
雖然這大體解決了我很多的問題,可仍然不是我很喜歡的做法。

後來無意間在處理一個longpress觸發TableViewCell移動的功能的code。
發現那個作者很神奇的暫存了Path.initialIndexPath,我心中有了個疑惑。
於是我去google了相關的資料,才確認了這種靜態呼叫而在全域皆會存在的做法。
比起使用AppDelegate的方式來說,更加簡單方便。而且也確認是全域通用。

其做法大致如下:

//定義一個結構,內含有你打算儲存的資訊及資料形態。最好使用optional以讓後續可以做nil判斷。
struct AppCache {

static var name : String?

}



設定時:

AppCache.name = "Cola"


取用時

let name = AppCache.name!



搜尋相關Tags的文章: [ Swift 3 ] , [ 資料暫存 ] ,
本篇文章發表於2016-12-02 01:31
== 簽名檔 ==
發問的美學:
1.確定你的先備知識條件足夠,基礎該學習的就不應該問人。
2.先思考過或先google過。
3.明確表達問題。
4.表達明確,能詳細問題的code。
5.發問的問題,絕不刪除,留給其他遇到相同問題的人一個好的紀錄。
6.我的skypelinetkdmaf,歡迎直接詢問。
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

可樂快跑
檢舉此回應
我剛剛才發現我引用錯使用code的引用方式了………
因為沒有swift的code的格式處理,之後可能改借用js的格式來用吧!
我來測試一下



設定時



取用時


本篇文章回覆於2016-12-02 01:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.