天天看點

iOS開發UI篇—ios應用資料存儲方式(偏好設定)

iOS開發UI篇—ios應用資料存儲方式(偏好設定)

一、簡單介紹

很多iOS應用都支援偏好設定,比如儲存使用者名、密碼、字型大小等設定,iOS提供了一套标準的解決方案來為應用加入偏好設定功能

每個應用都有個NSUserDefaults執行個體,通過它來存取偏好設定。比如,儲存使用者名、字型大小、是否自動登入

存儲位置:

iOS開發UI篇—ios應用資料存儲方式(偏好設定)
存儲形式:
iOS開發UI篇—ios應用資料存儲方式(偏好設定)

二、代碼示例

1.storyboard

iOS開發UI篇—ios應用資料存儲方式(偏好設定)
2.代碼

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.點選儲存資料,讀取資料按鈕列印如下

iOS開發UI篇—ios應用資料存儲方式(偏好設定)

三、補充說明

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,儲存(讀取)資料