用戶輕量級的數據持久化,主要用于保存用戶程序的配置等信息,以便下次啟動程序后能恢復上次的設置。
每個應用都有一個NSUesrDefaults實例,通過它可以存儲應用配置信息以及用戶信息,比如保存用戶名、密碼(密碼最好加密以后存儲)、字體大小、是否自動登錄等等。數據自動保存在沙盒的Libarary/Preferences目錄下(不安全,破解沙盒或者手機越獄就可以獲取到文件)。同樣,該方法只能存取NSString、NSArray、NSDictionary、NSData(圖片可以轉成NSData存儲)、NSNumber類型的數據。
在程序啟動后,系統會自動創建一個NSUserDefaults的單例對象,我們可以獲取這個單例來存儲少量的數據,它會將輸出存儲在.plist格式的文件中。其優點是像字典一樣的賦值方式方便簡單,但缺點是無法存儲自定義的數據。
具體來說NSUserDefaults是iOS系統提供的一個單例類,通過類方法standardUserDefaults可以獲取NSUserDefaults單例。如:
NSUserDefaults*defaults = [NSUserDefaultsstandardUserDefaults];
NSUserDefaults單例以key-value的形式存儲了一系列偏好設置,key是名稱,value是相應的數據。存/取數據時可以使用方法objectForKey:和setObject:forKey:來把對象存儲到相應的plist文件中