iOS開發UI篇—ios應用資料存儲方式(偏好設定)
一、簡單介紹
很多iOS應用都支援偏好設定,比如儲存使用者名、密碼、字型大小等設定,iOS提供了一套标準的解決方案來為應用加入偏好設定功能
每個應用都有個NSUserDefaults執行個體,通過它來存取偏好設定。比如,儲存使用者名、字型大小、是否自動登入
存儲位置:

二、代碼示例
1.storyboard
1 //
2 // YYViewController.m
3 // 01-偏好設定
4 //
5 // Created by apple on 14-6-7.
6 // Copyright (c) 2014年 itcase. All rights reserved.
7 //
8
9 #import "YYViewController.h"
10 //偏好設定
11 @interface YYViewController ()
12 /**
13 *儲存資料
14 */
15 - (IBAction)saveData:(id)sender;
16 /**
17 * 讀取資料
18 */
19 - (IBAction)readData:(id)sender;
20
21 @end
22
23 @implementation YYViewController
24
25 - (IBAction)saveData:(id)sender {
26 //1.擷取NSUserDefaults對象
27 NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
28
29 //2儲存資料(如果設定資料之後沒有同步, 會在将來某一時間點自動将資料儲存到Preferences檔案夾下面)
30 [defaults setObject:@"yangyong" forKey:@"name"];
31 [defaults setInteger:23 forKey:@"age"];
32 [defaults setDouble:1.73f forKey:@"height"];
33 [defaults setObject:@"man" forKey:@"gender"];
34
35 //3.強制讓資料立刻儲存
36 [defaults synchronize];
37 }
38
39 - (IBAction)readData:(id)sender {
40 //1.擷取NSUserDefaults對象
41 NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
42 //讀取儲存的資料
43 NSString *name=[defaults objectForKey:@"name"];
44 NSString *gender=[defaults objectForKey:@"gender"];
45 NSInteger age=[defaults integerForKey:@"age"];
46 double height=[defaults doubleForKey:@"height"];
47 //列印資料
48 NSLog(@"name=%@,gender=%@,age=%d,height=%.1f",name,gender,age,height);
49 }
50 @end
3.點選儲存資料,讀取資料按鈕列印如下
三、補充說明
1.儲存資料
//1.擷取NSUserDefaults對象
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
//2儲存資料
[defaults setObject:@"yangyong" forKey:@"name"];
[defaults setInteger:23 forKey:@"age"];
[defaults setDouble:1.73f forKey:@"height"];
[defaults setObject:@"man" forKey:@"gender"];
//3.強制讓資料立刻儲存
[defaults synchronize];
2.讀取資料
//1.擷取NSUserDefaults對象
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
//2.讀取儲存的資料
NSString *name=[defaults objectForKey:@"name"];
NSString *gender=[defaults objectForKey:@"gender"];
NSInteger age=[defaults integerForKey:@"age"];
double height=[defaults doubleForKey:@"height"];
3.重要說明
(1)偏好設定是專門用來儲存應用程式的配置資訊的, 一般情況不要在偏好設定中儲存其他資料。如果利用系統的偏好設定來存儲資料, 預設就是存儲在Preferences檔案夾下面的,偏好設定會将所有的資料都儲存到同一個檔案中。
(2)使用偏好設定對資料進行儲存之後, 它儲存到系統的時間是不确定的,會在将來某一時間點自動将資料儲存到Preferences檔案夾下面,如果需要即刻将資料存儲,可以使用[defaults synchronize];
(3)注意點:所有的資訊都寫在一個檔案中,對比簡單的plist可以儲存和讀取基本的資料類型。
(4)步驟:擷取NSuserDefaults,儲存(讀取)資料