iOS アプリケーションで plist ファイルを使用したいと考えています。いくつかの記事を読みましたが、必要な情報を収集できませんでした。これについて私を助けてください。
3 に答える
プロパティリストからのデータの読み取りと書き込みに関する質問の場合、関連するドキュメントは[プロパティリストプログラミングガイド]です。(https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/PropertyLists/ReadWritePlistData /ReadWritePlistData.html#//apple_ref/doc/uid/10000048i-CH8-SW3)
この抜粋はあなたを助けるはずです:
CoreFoundation関数を使用したプロパティリストデータの読み取りと書き込み
プロパティリストデータをファイルシステムに書き込むには、主に2つの方法があります。
プロパティリストのルートオブジェクトがNSDictionaryまたはNSArrayオブジェクトである場合(ほとんどの場合)、これらのクラスのwriteToFile:atomically:またはwriteToURL:atomically:メソッドを呼び出して、ルートオブジェクトを渡すことができます。これらのメソッドは、プロパティリストオブジェクトのグラフをXMLプロパティリストとして保存してから、ファイルまたはURLリソースとして書き込みます。プロパティリストデータをプログラムに読み戻すには、initWithContentsOfFile:およびinitWithContentsOfURL:メソッドまたは対応するクラスファクトリメソッド(たとえば、dictionaryWithContentsOfURL :)を呼び出して、割り当てられたコレクションオブジェクトを初期化します。
この最後の点を拡張するために、この例を検討してください。ルートオブジェクトが多数のNSDictionaryオブジェクトを含むNSArrayオブジェクトであるXMLプロパティリストがあります。この呼び出しでそのプロパティリストをロードする場合:
NSArray * a = [NSArray arrayWithContentsOfFile:xmlFile];
aは、各要素に不変の辞書を持つ不変の配列です。各辞書の各キーと各値も不変です。
この呼び出しでプロパティリストをロードする場合:
NSMutableArray * ma = [NSMutableArray arrayWithContentsOfFile:xmlFile];
maは、各要素に不変の辞書を持つ可変配列です。各辞書の各キーと各値は不変です。
プロパティリスト内のオブジェクトの可変性をよりきめ細かく制御する必要がある場合は、propertyListFromData:mutabilityOption:format:errorDescription:クラスメソッドを使用します。この2番目のパラメーターを使用すると、集約プロパティリストのさまざまなレベルでオブジェクトの可変性を指定できます。 。すべてのオブジェクトが不変(NSPropertyListImmutable)であるか、コンテナー(配列およびディクショナリ)オブジェクトのみが可変(NSPropertyListMutableContainers)であるか、またはすべてのオブジェクトが可変(NSPropertyListMutableContainersAndLeaves)であるかを指定できます。
たとえば、次のようなコードを書くことができます。
NSMutableArray *dma = (NSMutableArray *)[NSPropertyListSerialization
propertyListFromData:plistData
mutabilityOption:NSPropertyListMutableContainersAndLeaves
format:&format
errorDescription:&error];
この呼び出しにより、各要素に可変ディクショナリを持つ可変配列が生成されます。各辞書の各キーと各値は、それ自体も変更可能です。
このように使用できます:-
NSString *path = [[NSBundle mainBundle] pathForResource:@"dataList" ofType:@"plist"];
NSMutableArray *tempArray = [[NSMutableArray alloc] initWithContentsOfFile:path];
この配列は、テーブルビューまたはその他の目的にデータを入力するために使用できます。
plist
次のようなデータ形式を取得するのは非常に簡単です。
self.YorArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"YourplistName" ofType:@"plist"]];