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

How to save and get CSV file attachment from Email in IOS

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

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

但我想将通过邮件附加的 CSV 文件保存在 iCloud/alternative 中,我能够获取 CSV 文件的路径 saved.To 即使用户删除了所有记录,也可以再次将该记录保存到核心数据导出它们并单击导入选项后的核心数据记录。

至此我已经完成导出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 附件的想法..将不胜感激。

提前致谢..

我已使用以下方法成功将 CSV 文件保存到 iCloud link

Save iOS 8 Documents to iCloud Drive

我在下面使用 link 来检索 iCloud Files/Documents。

https://github.com/iRareMedia/iCloudDocumentSync

Export/Import 可以参考下面的文档 link