ios簡単なplistファイルの読み書き操作(DockmentとNSUserDefaults)

3710 ワード

最近はiosで文書を読んだり書いたりすることについての知識に出会いました.
一、よく使うplistファイルを簡単に紹介します.
フルネームは、Property List、属性リストファイルです.シリアル化されたオブジェクトを格納するためのファイルです.属性リストファイルの拡張子は.plistですので、通常はplistファイルと呼ばれます.ファイルはxml形式です.Plistファイルは、一般的にユーザ設定を保存するために使用され、また、バンドル情報を格納するために使用されてもよい.
まず、ファイルが保存されているいくつかの場所を説明します.
1,プロジェクトサンドボックス(つまりプログラムuser Dcumentフォルダの下でファイルを読み込み、ファイルに書き込む)
2,工程自体には(工程で手動でファイルを作成し、固定された内容を書き込んでください.これは手動で書きます.)
3,プロジェクトサンドボックス(user Dcumentに保存しますが、ファイルを読み書きする必要はありません. NSUserDefaultsは、android内のShardpreferencesのようなベースデータタイプを追加して読み込み、削除することができます. )
まずスクリーンショットを見ましょう
コンソールから出力されたのは工程下のplistファイルと沙箱ファイルのパスです.スクリーンショットで見られます.プレフィクスは統一されています.プログラムのフォルダに着いた後、一つはappname.appです.もう一つはDockmentsの下です.だから、保管位置はまだ違います.
まず、プロジェクトの中のplistはコードに書き込めないので、読み取りはできますが、書き込めません.(今のところ、安全のためにappleであると推測しています.)ので、コードの中でファイルを書くなどの操作は砂箱の中でしかできません.
(プログラムは通常固定データを使用しています.オフラインの地図データ、各都市の経緯度情報などはプログラムに結びつけられます.(UserDcumentより安全です).コードは循環して書き込みできます.plistをサンドボックスに書いて、マニュアルのcopyをプロジェクトディレクトリに入れます.これは私達が手動で追加する必要がありません.)
三、三種の方式の読み書き操作.
1-1,plistファイルを作成します.
command+Nショートカットを押して作成します.またはFile->New->New Fileを押して、Resourceを選択します. 下のPropty List
1−2プロジェクトパスplistファイルの読み込み.
   //path           provinces.plist      
    NSString *path = [[NSBundle mainBundle] pathForResource:@"provinces" ofType:@"plist"];

    NSDictionary *data = [NSDictionary dictionaryWithContentsOfFile:path];
    self.provincesContent = [NSArray arrayWithArray:[data objectForKey:@"province"]];//array       province
1-3、読み取った後、対応するデータの種類を与えてくれれば、そのまま使えます.このように簡単です.
2-1,ボックスパスplistファイルの読み込み.
    NSArray *patharray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    
    NSString *path =  [patharray objectAtIndex:0];
    
    NSString *filepath=[path stringByAppendingPathComponent:@"provinces.plist"];//           
    
    //              (NSArray,NSDictionary,NSString...)
    NSMutableArray *rootArray = [NSMutableArray arrayWithContentsOfFile:filepath];//  ,         ,  NSMutable   
2-2、もしdocumentにこのファイルがないと、自動的に作成されます.賦値を読み込むと、使えます.同時に、add、udate、removeができます.上のスクリーンショットを見て、分かりやすくなります.
3-1、NSUserDefaults快速読み書きは、システムが提供する方法を利用して、ユーザ登録ユーザ名パスワードなどの簡単なデータタイプを迅速に保存することができます.
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];//        
    NSMutableDictionary *defaultcoordinate = [defaults objectForKey:@"default_coordinate"];//         NSMutableDictionary  
    NSString *currentCity = [defaultcoordinate objectForKey:@"c_name"];
      3-2,添削します.見ればできます.
    [defaults setObject:@"kaka" forKey:@"newdata"];//  id      
    [defaults objectForKey:@"newdata"];//        
    
    [defaults setDouble:2013 forKey:@"double"];//  double    
    [defaults doubleForKey:@"double"];//  double    
    
    [defaults setBool:NO forKey:@"BOOL"];//  BOOL    
    [defaults boolForKey:@"BOOL"];//  BOOL    
    
    [defaults setInteger:12 forKey:@"int"];//  int    
    [defaults integerForKey:@"int"];//  int    
    
    [defaults setFloat:0.23 forKey:@"float"];//  Float    
    [defaults floatForKey:@"float"];//  float    
    
    [defaults removeObjectForKey:@"newdata"];//      
3-3、操作後はSynchronizeの同期操作を覚えてください.そうでなければ、他のスレッドが大量のメモリを占めていますので、セーブできません.
    [defaults synchronize];
四、サンドボックスファイルを開く方法:
1,システムバンドの端末ツールで、bashコマンドラインモードで
2,Finderメニュー-この時にキーボードを押していく:optionボタンは、表示されます:リソースライブラリ、クリックして入力します.
ファイルの操作については、ここに書いて、もっと複雑なNSDataやsqliteを保存して、後で使って、勉強する時に補充してください.
ヤング
2012年1月31日