5

私の iPhone アプリには、「テーマ」を保存する 2 つの plist ファイルがあります。1 つは既定のテーマを含む読み取り専用ファイルで、もう 1 つはユーザーが作成したカスタム テーマを含みます。plist から読み取って新しい Theme オブジェクトを作成するのは非常に簡単なので、plist ファイルを使用しています。

私の plist は辞書オブジェクトの配列です。

新しい辞書オブジェクトを plist ファイルに追加する簡単な方法はありますか? または、ファイルをメモリに読み込み、新しい辞書オブジェクトを追加して、ファイルシステムに書き戻す必要がありますか?

ありがとう!

4

3 に答える 3

3

(ここで回答した同様の質問からのリンクをクリックしたくない人のために、これをコピーしました: A question on how to Get data from plist & how should it be layout )

NSDictionary を使用して plist から値を読み書きする 2 つの方法を次に示します。

- (NSMutableDictionary*)dictionaryFromPlist {
    NSString *filePath = @"myPlist.plist";
    NSMutableDictionary* propertyListValues = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
    return [propertyListValues autorelease];
}

- (BOOL)writeDictionaryToPlist:(NSDictionary*)plistDict{
    NSString *filePath = @"myPlist.plist";
    BOOL result = [plistDict writeToFile:filePath atomically:YES];
    return result;
}

そして、コードブロックのどこかに:

// Read key from plist dictionary
NSDictionary *dict = [self dictionaryFromPlist];
NSString *valueToPrint = [dict objectForKey:@"Executable file"];
NSLog(@"valueToPrint: %@", valueToPrint);

// Write key to plist dictionary
NSString *key = @"Icon File";
NSString *value = @"appIcon.png";
[dict setValue:value forKey:key];

// Write new plist to file using dictionary
[self writeDictionaryToPlist:dict];
于 2009-10-24T06:26:51.180 に答える
3

これは、plistにデータを追加する方法です:

    NSString *filePath = [self dataFilePath];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) 
{
    NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:filePath];
    [array addObject:countdownLabel.text];
    [array writeToFile:[self dataFilePath] atomically:YES];
    [array release];
}
else
{
    NSArray *array = [NSArray arrayWithObject:countdownLabel.text];
    [array writeToFile:filePath atomically:YES];
}
于 2010-08-20T16:37:08.993 に答える