Three ways to store iOS
Last Update:2015-06-07
Source: Internet
Author: User
<span id="Label3"></p><p><p>3 ways to store in Ios:</p></p><p><p>1.NSUserDefaults</p></p><p><p>Note that there is no problem with storing the base object type, but to store the custom object, you will serialize all the attributes within the object (or the properties that need to be stored) to implement the Nscoding protocol Serialization.</p></p><pre><pre>Save:<br>[[nsuserdefaults standarduserdefaults] setValue:<span style="color: #800000;">@ "</span><span style="color: #800000;">yellow</span><span style="color: #800000;">"</span> forkey:<span style="color: #800000;">@ "</span><span style="color: #800000;">color </span><span style="color: #800000;">"</span><span style="color: #000000;">]; [[nsuserdefaults standarduserdefaults] synchronize];</span></pre></pre><pre><pre>Take:<br>NSString *color = [[nsuserdefaults standarduserdefaults] objectforkey:<span style="color: #800000;">@ "</span><span style="color: #800000;">color</span><span style="color: #800000;">"</span>];</pre></pre><p><p>For stored objects that are custom: (serialization of the <span style="color: #000000;"></span> sample Contact)</p></p><pre><pre><span style="color: #0000ff;">#import</span> <Foundation/Foundation.h><span style="color: #0000ff;">@interface</span> contact:nsobject <NSCoding><span style="color: #000000;"></span>* <span style="color: #000000;"></span> *<span style="color: #000000;">phonenumber;</span> + (<span style="color: #0000ff;">ID</span>) contactswithname: (nsstring *) aName phonenumber: (nsstring *<span style="color: #000000;">) aphonenumber;</span> <span style="color: #0000ff;">@end</span></pre></pre><p><p></p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;">#import "Contact.h"<br><br>#define</span></span>Knamekey @ "namekey"<span style="color: #0000ff;"><span style="color: #0000ff;">#define</span></span>Kphonenumberkey @ "phonenumberkey"<span style="color: #0000ff;"><span style="color: #0000ff;">@implementation</span></span><span style="color: #000000;"><span style="color: #000000;"></span> contact</span>- (<span style="color: #0000ff;"><span style="color: #0000ff;">ID</span></span>) initwithname: (nsstring *) aName phonenumber: (nsstring *<span style="color: #000000;"><span style="color: #000000;">) aphonenumber{</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(self =<span style="color: #000000;"><span style="color: #000000;">[super Init]) {self.name</span></span>=<span style="color: #000000;"><span style="color: #000000;">aName; Self.phonenumber</span></span>=<span style="color: #000000;"><span style="color: #000000;">aphonenumber; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span><span style="color: #000000;">self <span style="color: #000000;">;}</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;">the <span style="color: #008000;">convenient method of initializing the package, where self in the static method does not represent the object of the current class, represents the current class itself</span></span>+ (<span style="color: #0000ff;"><span style="color: #0000ff;">ID</span></span>) contactswithname: (nsstring *) aName phonenumber: (nsstring *<span style="color: #000000;"><span style="color: #000000;">) aphonenumber{</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span><span style="color: #000000;">[[self <span style="color: #000000;">alloc] initwithname:aname phonenumber:aphonenumber] autorelease]; }</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">two protocol methods for object serialization</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">object serialization method that encodes all the properties of an object into a local</span></span>- (<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>) Encodewithcoder: (nscoder *<span style="color: #000000;"><span style="color: #000000;">) Acoder{[acoder Encodeobject:_name forkey:knamekey]; [acoder Encodeobject:_phonenumber forkey:kphonenumberkey];}</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Methods for deserializing objects</span></span>- (<span style="color: #0000ff;"><span style="color: #0000ff;">ID</span></span>) Initwithcoder: (nscoder *<span style="color: #000000;"><span style="color: #000000;">) adecoder{</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(self =<span style="color: #000000;"><span style="color: #000000;">[super Init]) {self.name</span></span>=<span style="color: #000000;"><span style="color: #000000;">[adecoder decodeobjectforkey:knamekey]; Self.phonenumber</span></span>=<span style="color: #000000;"><span style="color: #000000;">[adecoder decodeobjectforkey:kphonenumberkey]; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span><span style="color: #000000;">self <span style="color: #000000;">;}</span></span></pre><p><p></p></p><p><p>2. Sand Box</p></p><pre>- (<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">) Viewdidload {[super viewdidload]; Nsmutabledictionary</span></span>*saveddic =<span style="color: #000000;"><span style="color: #000000;">[[nsmutabledictionary alloc] initwithcontentsoffile:[self datafilepath]]; </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">If the data is not taken from the Userdefault for the first time, create a dictionary manually</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(!<span style="color: #000000;"><span style="color: #000000;">Saveddic) {self.dic</span></span>= [nsmutabledictionary dictionarywithcapacity:<span style="color: #800080;"><span style="color: #800080;">0</span></span><span style="color: #000000;"><span style="color: #000000;">]; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Else</span></span><span style="color: #000000;"><span style="color: #000000;">{self.dic</span></span>=<span style="color: #000000;"><span style="color: #000000;">saveddic; } </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">sign up for a notification that will enter the background</span></span>[[nsnotificationcenter defaultcenter] addobserver:self selector: @selector (saveData) name: Uiapplicationwillresignactivenotification<span style="color: #0000ff;"><span style="color: #0000ff;">Object</span></span><span style="color: #000000;"><span style="color: #000000;">: nil]; }</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">returns the path of the file</span></span>-(nsstring *<span style="color: #000000;"><span style="color: #000000;">) datafilepath{</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Sand Box</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">get the path to the Documents folder under the sandbox</span></span>Nsarray *paths =<span style="color: #000000;"><span style="color: #000000;">nssearchpathfordirectoriesindomains (nsdocumentdirectory, nsuserdomainmask, YES); NSLog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">paths%@</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">, paths); NSString</span></span>*path = [paths objectatindex:<span style="color: #800080;"><span style="color: #800080;">0</span></span><span style="color: #000000;"><span style="color: #000000;">]; </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">append a file path under the documents path</span></span>NSString *filepath = [path stringbyappendingpathcomponent:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">select.plist</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">]; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span><span style="color: #000000;"><span style="color: #000000;">filePath; }</span></span>- (<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">) savedata{</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">the value stored in the dictionary must be an array dictionary Boolean data date nsnumber nsstring</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">writes a dictionary to a file, actually organizes the data according to the plist format</span> .</span><span style="color: #000000;"><span style="color: #000000;">[_dic writetofile:[self datafilepath] atomically:yes]; Nsmutabledictionary</span></span>*saveddic =<span style="color: #000000;"><span style="color: #000000;">[[nsmutabledictionary alloc] initwithcontentsoffile:[self datafilepath];}</span></span></pre><p><p></p></p><p><p>3.sqlite</p></p><p><p>Three ways to store iOS</p></p></span>