繁体   English   中英

以编程方式在plist文件中添加索引

[英]Add index in plist file programmatically

我正在以编程方式直接创建一个plist文件到documents目录。 这是我的代码。

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文件中以编程方式添加索引?
任何帮助或建议,将不胜感激!

谢谢

尝试

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];

您应该将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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM