假设我已经为 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 中的样子:
现在,在 iTunes 中,您的应用程序的文档目录将可见。
或者(或除 iTunes 之外),您可以使用 MessageUI 框架并允许用户通过电子邮件发送文件。
关于objective-c - 如何将文本从 iOS 应用程序导出到台式电脑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7019813/