サーチ…
前書き
Plistは、iOSアプリでのデータの保存に使用されます。 Plistは配列と辞書の形式でデータを保存します。 plistでは、以下のようにデータを保存することができます:1.アプリケーションで使用される静的データ。 2.サーバーから送信されるデータ。
例:
1.アプリケーションで使用する静的データ。
静的データをplistに保存するには、次の方法を実行します。
a)新しいファイルを追加する
b)「リソース」の「プロパティー」リストをクリックします。
c)プロパティリストに名前をつけ、ファイルは(data.plistはここに)作成されます。
d)アレイとディクショナリのplistを以下のように作成することができます:
//バンドルからplistを読み込み、それからルート辞書を取得する
NSDictionary *dictRoot = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"]];
//辞書に辞書の配列が含まれています//ここで配列を取り出します。
NSArray *arrayList = [NSArray arrayWithArray:[dictRoot objectForKey:@"Object1"]];
for(int i=0; i< [arrayList count]; i++)
{
NSMutableDictionary *details=[arrayList objectAtIndex:i];
}
Plistからのデータの保存と編集/削除
あなたはすでにplistを作成しています。このplistはアプリ内で同じままです。このplistのデータを編集したり、plistに新しいデータを追加したり、plistからデータを削除する場合は、このファイルを変更することはできません。
この目的のために、plistをDocument Directoryに保存する必要があります。ドキュメントディレクトリに保存されたplistを編集することができます。
plistを以下のようにドキュメントディレクトリに保存します。
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:filePath];
NSDictionary *plistDict = dict;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *error = nil;
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:plistDict format:NSPropertyListXMLFormat_v1_0 errorDescription:&error];
if (![fileManager fileExistsAtPath: plistPath]) {
if(plistData)
{
[plistData writeToFile:plistPath atomically:YES];
}
}
else
{
}
Plistからのデータ収集:
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"Data.plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
NSArray *usersArray = [dict objectForKey:@"Object1"];
削除を編集し、要件に応じて新しいデータを追加し、plistをDocument Directoryに再度保存することができます。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow