iOS: 喜好設定的詳解和使用

來源:互聯網
上載者:User

標籤:

喜好設定的詳解:

用途:主要用來儲存使用者系統的裝置資訊,但有的時候也可以在程式的任何地方用來儲存資料,作為全域資料來訪問,例如視圖切換需要進行登入時。

喜好設定的寫入:•很多iOS應用都支援喜好設定,比如儲存使用者名稱、密碼、字型大小等設定,iOS提供了一套標準的解決方案來為應用加入喜好設定功能•每個應用都有個NSUserDefaults執行個體,它是一個單例對象,通過它來存取喜好設定,設定資訊都是索引值對的形式。•例如:儲存使用者名稱、字型大小、是否自動登入

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

[defaults setObject:@"itcast.cn" forKey:@"userName"];

[defaults setFloat:18.0f forKey:@"fontSize"];

[defaults setBool:YES forKey:@"autoLogin"];

喜好設定的讀取:

// 讀取系統偏好

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSString *userName = [defaults objectForKey:@"userName"];

float fontSize = [defaults floatForKey:@"fontSize"];

BOOL autoLogin = [defaults boolForKey:@"autoLogin"];

注意:UserDefaults設定資料時,不是立即寫入,而是根據時間戳記定時地把緩衝中的資料寫入本地磁碟。所以調用了set方法之後資料有可能還沒有寫入磁碟,應用程式就終止了。

出現以上問題,可以通過調用synchornize同步方法強制寫入:

[defaults synchronize];

 

喜好設定的使用:

1.設定使用者登入資訊(喜好設定)

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 

    [userDefaults setObject:@"admin" forKey:@"userName"];     //登入使用者名稱

    [userDefaults setObject:[NSDate date] forKey:@"loginDate"];      //登入時間

    [userDefaults setInteger:2 forKey:@"times"];              //登入次數

 

2.將設定的使用者資訊強制儲存到磁碟沙箱目錄下的preference檔案中

    [userDefaults synchronize];

 

3.讀取喜好設定

  NSUserDefaults *userDefaluts = [NSUserDefaults standardUserDefaults];    

    NSString *userName = [userDefaluts objectForKey:@"userName"];

    NSDate *date = [userDefaluts objectForKey:@"loginDate"];

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];

    dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

    NSInteger times = [userDefaluts integerForKey:@"times"];

    NSLog(@"userName:%@,date:%@,times:%ld",userName,[dateFormatter stringFromDate:date],times);

 

示範結果:

2015-09-20 10:18:33.529 02-使用者喜好設定[601:20685] userName:admin,date:2015-09-20 10:18:33,times:2

 

iOS: 喜好設定的詳解和使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.