如何在IOS中保存并从电子邮件中获取CSV文件附件

时间:2015-03-06 04:42:20

标签: ios objective-c csv email-attachments

我在Core Data中存储了一些数据。我成功将核心数据记录导出为CSV文件,并将该CSV文件作为附件发送给最终用户。

我要知道iPhone不允许保存图像以外的附件。相反,它提供了一些选项来查看附件,如pdf。

但我想在iCloud / alternative中保存通过邮件附加的CSV文件,并且我能够保存CSV文件的路径。要将这些记录再次保存到核心数据,即使用户在导出后删除了所有核心数据记录他们&点击导入选项。

直到现在我已完成导出CSV文件和发送邮件。此外,我已将CSV文件保存在文档目录中并解析CSV文件并再次保存到核心数据。

以下是我的代码..使用文档目录。

AppDelegate *appDelegate;

 appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    NSManagedObjectContext *context=[appDelegate managedObjectContext];
 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                         NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@“sample.csv"];
if (filePath) {
        NSString * myText = [[NSString alloc]
                             initWithContentsOfFile:filePath
                             encoding:NSUTF8StringEncoding
                             error:nil];
        if (myText) {
            __block int count = 0;

            [myText enumerateLinesUsingBlock:^(NSString * line, BOOL * stop) {
                line=[line stringByReplacingOccurrencesOfString:@"\t" withString:@" "];
                NSArray *lineComponents=[line componentsSeparatedByString:@" "];
                if(lineComponents){

                     float f=[[lineComponents objectAtIndex:0] floatValue];
                     NSNumber *number=[NSNumber numberWithFloat:f];
                     NSString *string1=[lineComponents objectAtIndex:1];
                     NSString *string2=[lineComponents objectAtIndex:2];
                     NSManagedObject *object=[NSEntityDescription insertNewObjectForEntityForName:@“Record” inManagedObjectContext:context];
                     [object setValue:number forKey:@"number"];
                     [object setValue:string1 forKey:@"string1"];
                     [object setValue:string2 forKey:@"string2"];
                     NSError *error;
                     count++;
                     if(count>=1000){
                     if (![context save:&error]) {
                     NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
                     }
                     count=0;

                     }
                }
            }];
            NSLog(@"done importing");
            NSError *error;
            if (![context save:&error]) {
                NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
            }
            else
            {
                [[[UIAlertView alloc]  initWithTitle:@"CSV" message:@"File Imported successfully" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
            }

        }
    }

如何保存CSV附件的任何想法......将不胜感激。

先谢谢..

1 个答案:

答案 0 :(得分:0)

我已成功使用以下链接

将CSV文件保存到iCloud中

Save iOS 8 Documents to iCloud Drive

我使用以下链接检索iCloud文件/文档。

https://github.com/iRareMedia/iCloudDocumentSync

导出/导入文档可以使用以下链接

进行参考

Export & Import Documents using iCloud in IOS