iOS開發 兩個函式搞定本地儲存

2021-09-20 04:35:14 字數 1241 閱讀 7627

// mark: - store

enum storetype

func setcontenttodevice (content:anyobject, key:string, type:storetype) else if type == .plist

}}func getcontentfromdevice (key:string, type:storetype) -> anyobject? else if type == .plist }}

return returnobject

}

函式名和引數名都一看便知是什麼意思,只要你訪問資料都用的是同乙個 key,就可以操作同乙份資料。

這裡多提供了乙個 type 選項來選擇通過 nsuserdefaults 或者 plist 來儲存資料。但是要注意,在這裡 nsuserdefaults 只支援儲存 nsarray、nsstring 等基本型別,如果你要儲存自定義型別的例項,必須使用 storetype.plist 進行儲存。此外,這個類還必須進行微小的改動,這部分可以參考我之前寫的一篇文章。

下面給出使用這個函式的範例:(其中 hero 是我自定義的類)

let arr = [1,2,3,4,5]

setcontenttodevice(arr, key: "testarr", type: .userdefaults)

let ironman = hero(name: "tony stark")

setcontenttodevice(ironman, key: "testhero", type: .plist)

if let result = getcontentfromdevice("testarr", type: .userdefaults)

if let result = getcontentfromdevice("testhero", type: .plist) as? hero

控制台輸出

防止有人懶得看我之前寫的那篇文章,把 hero class 這部分**也貼出來

import uikit

class hero: nsobject

func encodewithcoder(acoder: nscoder!)

init(coder adecoder: nscoder!)

}

這是完整專案 github 位址

專案開發錄製兩個

keyword 時刻。爭,效用。利息。關鍵句 沒有結果只能說明一點力氣。你的努力都是假的!從事情的反應,你就可以讓你花多少時間!那裡有話語技術的權利,我們不是靠管理。你覺得不僅讓你從別人,有你能給別人帶去什麼。選擇共同做專案,就意味著承擔這份責任。維持彼此之間的就是利益。我把專案分配給你做。是對你的...

iOS開發 使用Block在兩個介面之間傳值

一 在第二個檢視控制器的.h檔案中定義宣告block屬性 宣告的block重新定義了乙個名字 returntextblock typedef void returntextblock nsstring showtext inte ce textfieldviewcontroller uiviewco...

iOS開發之計算兩個日期的時間間隔

首先建立格式化物件 nsdateformatter dateformatter nsdateformatter alloc init dateformatter setdateformat yyyy mm dd hh mm ss 然後建立日期物件 nsdate date1 dateformatter...