objective-c - 如何将文本从 iOS 应用程序导出到台式电脑?

标签 objective-c windows ios cocoa-touch text

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

最佳答案

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

将其保存到磁盘:

要保存在应用程序的文档目录中,您需要做一些事情。首先,您需要获取路径目录的 URL。当您制作基于 Core Data 的项目时,Xcode 会方便地生成一个方法。这是该方法:

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

接下来,您需要获取该 URL 并使用它来将我们的内容写入您的应用程序的文档目录。在最简单的情况下,我们有一个名为 someText 的字符串,我们将把它写到 Documents 目录中。这是它的样子:

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

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

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

我们告诉字符串将其自身写入文件(在本例中是自动写入的),如果失败,我们将填充 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];

从 iTunes 读取文件:

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

Enabling iTunes sharing

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


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

关于objective-c - 如何将文本从 iOS 应用程序导出到台式电脑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7019813/

相关文章:

objective-c - 为什么根类的元类的父类(super class)不是 NULL 指针?

windows - 如何使用 PowerShell 导入 CSV 文件并从文本文件中读取一行?

ios - 谷歌驱动器 API : Insufficient Permission iOS

html - 在同一字符串中使用不同语言的 iOS Safari 中的奇怪行为

ios - 只有从 [UIColor colorNamed :] even though traitCollection. userInterfaceStyle = Dark 返回的浅色外观颜色

ios - 模块化 iOS App 的方法有哪些?

ios - 对许多请求进行排队,然后根据添加的时间进行排序,但项目最终会根据从请求中收到的时间进行排序

ios - iOS 中的 session 变量

java - 有没有办法从 windows 或 linux 机器远程安装程序到 windows 机器?最好是一些容易用java编码的东西

python - 如何使用 python 操作系统更改驱动器?