0

ドキュメントディレクトリにプログラムで直接plistファイルを作成しています。これが私のコードです..

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myList.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];

if (![fileManager fileExistsAtPath: path])
{
    path = [documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat: @"myList.plist"] ];
}
NSMutableArray *data ;
if ([fileManager fileExistsAtPath: path])
{
    data = [[NSMutableArray alloc] initWithContentsOfFile: path];

}
else
{
    // If the file doesn’t exist, create an empty dictionary
    data = [[NSMutableArray alloc] init];
}
data = [[NSMutableArray  alloc] initWithCapacity:5];
[data addObject:value1];
[data addObject:value2];
[data addObject:value3];

この形式の plist ファイルを作成します。

<array>
        <string>1</string>
        <string>2</string>
        <string>3</string>
</array>

ここで、次のように別のインデックスを追加したいと思います。

<array>
        <string>1</string>
        <string>2</string>
        <string>3</string>
</array>
<array>
        <string>11</string>
        <string>22</string>
        <string>33</string>
</array>  

plist ファイルにプログラムでインデックスを追加するにはどうすればよいですか?
どんな助けや提案もいただければ幸いです!!

ありがとうございました

4

2 に答える 2

4

試す

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myList.plist"];

NSMutableArray *data = [[NSMutableArray alloc] initWithContentsOfFile: path];
if (!data) {
    data = [NSMutableArray array];
}

[data addObject:@[value1,value2,value3]];

[data writeToFile:path atomically:YES];
于 2013-04-25T12:51:33.783 に答える
1

plist を辞書として整理する必要があります。各キーに対応して、配列オブジェクトを格納できます。とても簡単です。NSDictionary適切なキーをインデックス番号として配列を に格納します。次に、その辞書を plist に追加します

<dict>
  <key>0</key>
  <array>
      <string>1</string>
      <string>2</string>
      <string>3</string>
  </array>
  <key>1</key>
  <array>
      <string>11</string>
      <string>22</string>
      <string>33</string>
  </array>
</dict>
于 2013-04-25T12:43:00.373 に答える