NSUserDefaults In Xamarin iOS

Introduction

Xamarin is a platform to develop cross-platform and multi-platform apps (for example, Windows phone, Android, iOS). In Xamarin platform, the code sharing concept is used. In Xamarin Studio, Visual Studio is also available.

iOS provides many ways of storing data of an application. One of this way is called NSUserDefaults. NSUserDefaults allow you to save and retrieve data in the form of key, value pair.
Prerequisites
  • Xamarin Studio.
  • Xcode.
The steps given below are required to be followed in order to Use NSUserDefaults in Xamarin iOS, using Xamarin Studio.

Step 1

Go To Xamarin Studio.

Click New Solution—> select iOS—>select App--> Choose single View App. Afterwards, click Next.



Step 2

In this step, configure your app. Give the app name (Ex:sample), Organization Identifier. Afterwards, click Next.



Step 3

In this step, give your project name (Ex: Sample) and solution name (Ex: Sample). Give the path of your project. Afterwards, click Create.



Step 4

Subsequently, go to the solution. In the solution, get all the files and sources in your project. Now, select Main.storyboard and double click to open Main.storyboard page.



Step 5

After opening the Main.storyboard, you can design this page, as per your desire.



Step 6

In this step design your app.using storyboard, Toolbox and Properties.
  1. Text Field(txtString)
  2. Text Field(txtInteger)
  3. Button(btnStore)
  4. Label(lblString)
  5. Label(lblInteger)
  6. Label(lblBoolean)


Step 7

In this step, go to the ViewController.cs page. write the code given below.

ViewController.cs
  1. using System;  
  2. using UIKit;  
  3. using Foundation;  
  4. namespace XamariniOSUserDefaults {  
  5.     public partial class ViewController: UIViewController {  
  6.         NSUserDefaults storevalues = new NSUserDefaults();  
  7.         protected ViewController(IntPtr handle): base(handle) {  
  8.             // Note: this .ctor should not contain any initialization logic.  
  9.         }  
  10.         public override void ViewDidLoad() {  
  11.             base.ViewDidLoad();  
  12.             // Perform any additional setup after loading the view, typically from a nib.  
  13.             switchOnOff.On = false;  
  14.             switchOnOff.ValueChanged += (sender, e) => {  
  15.                 if (switchOnOff.On == true) {  
  16.                     //Store value on Userdefaults  
  17.                     storevalues.SetBool(switchOnOff.On = true"swithvalue");  
  18.                 } else {  
  19.                     //Store value on Userdefaults  
  20.                     storevalues.SetBool(switchOnOff.On = false"swithvalue");  
  21.                 }  
  22.             };  
  23.         }  
  24.         partial void UIButton12_TouchUpInside(UIButton sender) {  
  25.             //Store value on Userdefaults  
  26.             storevalues.SetString(txtString.Text, "stringvalue");  
  27.             storevalues.SetInt(Int32.Parse(txtInteger.Text), "integervalue");  
  28.             //Get values form Userdefaults  
  29.             lblString.Text = storevalues.StringForKey("stringvalue");  
  30.             lblInteger.Text = storevalues.IntForKey("integervalue").ToString();  
  31.             lblBoolean.Text = storevalues.BoolForKey("swithvalue").ToString();;  
  32.         }  
  33.         public override void DidReceiveMemoryWarning() {  
  34.             base.DidReceiveMemoryWarning();  
  35.             // Release any cached data, images, etc that aren't in use.  
  36.         }  
  37.     }  
  38. }  


Step 8

Now, go to Run option, choose Debug. Opens the list of iPhone and iPad simulators, which are available. You can choose any one simulator and run it.



Output

After a few seconds, the app will start running on your iPhone simulator. You will see your app working successfully.



You can fill the input fields and click Store. You will see the data stored and retrieved successfully.



Summary

This was the process of using NSUserDefaults in Xamarin iOS , using Xamarin Studio.