Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从NSMutableArray创建csv_Ios_Objective C_Csv_Plist - Fatal编程技术网

Ios 从NSMutableArray创建csv

Ios 从NSMutableArray创建csv,ios,objective-c,csv,plist,Ios,Objective C,Csv,Plist,在我的应用程序中,我正在创建一个.plist文件,但我需要使用Excel表格中存储在该.plist中的数据。我需要一种方法来获取这个plist的csv表单。我试图在网上搜索,但我发现只有一个转换器允许从csv创建plist。我想有一种方法可以直接从我的iPad应用程序生成csv文件。有人知道怎么做吗 更新: + (void)saveFileFromArray:(NSMutableArray *)promoArray { NSMutableString *target = [@"Nome,

在我的应用程序中,我正在创建一个.plist文件,但我需要使用Excel表格中存储在该.plist中的数据。我需要一种方法来获取这个plist的csv表单。我试图在网上搜索,但我发现只有一个转换器允许从csv创建plist。我想有一种方法可以直接从我的iPad应用程序生成csv文件。有人知道怎么做吗

更新:

+ (void)saveFileFromArray:(NSMutableArray *)promoArray {
    NSMutableString *target = [@"Nome,Cognome,E-mail,Data di nascita,Indirizzo,Città,Cap,Telefono\n" mutableCopy];

    for (NSDictionary *dict in promoArray) {
        [target appendFormat:@"%@,%@,%@,%@,%@,%@,%@,%@\n",dict[@"name"],dict[@"surname"],dict[@"email"],dict[@"birthdate"],dict[@"address"],dict[@"city"],dict[@"zip"],dict[@"phone"]];
    }
    NSError *error = nil;

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"profiles.csv"];

    NSURL *url = [NSURL URLWithString:fileName];

    BOOL success = [target writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:&error];

    if (!success) {
        NSLog(@"Errore: %@", error.localizedDescription);
    }
}

遍历数组,并将希望的部分写入字符串

在中使用逗号的字符串将非常有用。马车的回报也不错

当字符串完成时。将其写入文件

NSMutableString *target = [@"head1,head2,head3\n" mutableCopy];

for (NSDictionary *dict in array) {

    [target appendFormat:@"%@,%@,%@\n",dict[@"thing"],dict[@"otherthing"],dict[@"lemming"]];

}

NSError *error = NULL;

BOOL success = [target writeToURL:somewhere atomically:YES encoding:NSUTF8StringEncoding error:&error];

if (!success) {
    NSLog(@"oh no! - %@",error.localizedDescription);
}
该代码段假定您有一个
NSDictionary
数组,但如果是其他内容,则原理相同

对于每个对象,打印一个逗号分隔的字符串,并以CR结尾

在真实数据中,您必须注意的是

  • 已在中使用逗号的描述
  • 已包含CR的描述

只需使用已经开发和测试的框架即可。我用的是很好用的


偶尔,我不得不添加一两个功能,但考虑到它是开源的,这没什么大不了的。

在应用程序中将plist转换为CSV,然后导出文件,这样您就可以在Excel中访问了。。。非常感谢。我刚刚更改了一条指令:
BOOL success=[target writeToURL:somewhere atomicaly:YES encoding:NSUTF8StringEncoding error:&error]
to
BOOL success=[target writeToFile:fileName自动:YES编码:NSUTF8StringEncoding错误:&error]现在效果很好!