从NsArray生成plist数据

时间:2014-07-29 08:27:08

标签: objective-c xcode

我有一个带对象的nsarray。 我想使用一个api方法,它有一个plist-xml参数,包含我的数组中的对象。有没有从数组创建plist / xml字符串的方法?

示例:

 My Object { int id ,NsString name }
 plist ..
 <array>
  <dict>
  <key> Id </key>
  <integer>1</integer>
 </dict>
 ...
..
</array>

1 个答案:

答案 0 :(得分:1)

如果你想制作“plist”文件..

NSMutableArray *testArray = [[NSMutableArray alloc] init];

for(int i =0; i < 10; i++)
{
    NSString *key = [NSString stringWithFormat:@"key%d", i];
    NSInteger value = i;
    NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                [NSNumber numberWithInteger:value], key, nil];
    [testArray addObject:dictionary];
}

NSString *error;
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:(id)testArray
                                                      format:NSPropertyListXMLFormat_v1_0
                                            errorDescription:&error];

if(plistData)
{
    NSArray *documentDirectoryPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *saveDir = [NSString stringWithFormat:@"%@/plistData.plist", [documentDirectoryPath objectAtIndex:0]];
    [plistData writeToFile:saveDir atomically:YES];

}else {
    NSLog(@"Error: %@", error);
}

或者你想制作“XML”..只需改变一行。 像这样。

NSString *saveDir = [NSString stringWithFormat:@"%@/plistData.xml", [documentDirectoryPath objectAtIndex:0]];