如何将文本从iOS应用程序导出到桌面PC?

Lop*_*per 1 windows cocoa-touch text objective-c ios

假设我已经为iOS编写了一个应用程序,允许用户输入一些文本并保存.如何导出此文本以便在运行Windows操作系统的台式机上查看?如果不可能,有哪些替代方案?

Mos*_*she 7

您可以将文本保存到应用程序的Documents目录中,并允许它们通过iTunes导出.您也可以允许他们通过电子邮件发送.

将其保存到磁盘:

要保存在App的文档目录中,您需要做一些事情.首先,您需要获取路径目录的URL.当您创建基于Core Data的项目时,Xcode可以方便地生成一种方法.这是方法:

- (NSURL *)applicationDocumentsDirectory{
  return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}
Run Code Online (Sandbox Code Playgroud)

接下来,您将要获取该URL并使用它将我们的文档写入您的App文档目录.在简单的情况下,我们有一个名为的字符串,someText我们将写入Documents目录.这是看起来像:

NSString *someText = "Here's to some awesome text.";
Run Code Online (Sandbox Code Playgroud)

我们有一条叫做的路径path.请注意,我们采用文档目录的路径,然后附加文件名.您可以替换someText.txt为您要使用的任何文件名.

NSString *path = [NSString stringWithFormat:@"%@",[[[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"someText.txt"] absoluteString]];
Run Code Online (Sandbox Code Playgroud)

我们告诉字符串将自己写入文件(在本例中是原子的),如果失败,我们填充error对象,如果有必要,我们可以稍后读出.请注意这里的"原子"选项.如果设置为YES,则应用程序会将文本写入缓冲区并在之后重命名.如果未设置YES,则文本将直接写入文本.这在多线程环境中有所不同,可以保护您的文本免受某些损坏的结果,但原子写入速度较慢.

以下是上述所有代码:

//Write to the file
[someText writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];

NSString *someText = "Here's to some awesome text.";

NSError *error = nil;

NSString *path = [NSString stringWithFormat:@"%@",[[[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"someText.txt"] absoluteString]];

//Write to the file
[someText writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
Run Code Online (Sandbox Code Playgroud)

从iTunes读取文件:

这是有趣的部分.在Xcode中,您需要在应用的Info.plist文件中添加一个键.这是Xcode 4中的样子:

启用iTunes共享

现在,在iTunes中,您的应用程序文档目录将可见.


或者(或除iTunes之外),您可以使用MessageUI框架并允许用户通过电子邮件发送文件.