【发布时间】:2011-08-11 01:20:38
【问题描述】:
假设我为 iOS 编写了一个应用程序,它允许用户输入一些文本并保存它。如何导出此文本以在运行 Windows 操作系统的台式 PC 上查看?如果这不可能,有什么替代方案?
【问题讨论】:
标签: objective-c windows ios cocoa-touch text
假设我为 iOS 编写了一个应用程序,它允许用户输入一些文本并保存它。如何导出此文本以在运行 Windows 操作系统的台式 PC 上查看?如果这不可能,有什么替代方案?
【问题讨论】:
标签: objective-c windows ios cocoa-touch text
您可以将文本保存到应用程序的 Documents 目录中,并允许他们通过 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 文件中添加一个键。这是 Xcode 4 中的样子:
现在,在 iTunes 中,您的应用程序的文档目录将可见。
或者(或除了 iTunes),您可以使用 MessageUI 框架并允许用户通过电子邮件发送文件。
【讨论】:
为了补充 Moshe 所说的,我在以下网站上找到了其他文档/代码,这些文档/代码显示了如何实现这一点。
【讨论】:
要添加另一个解决方案,除了 Moshe 和 Lopper 已经说过的内容之外,如果您希望能够在本地和远程导出文件,您可以使用 FTP。所有的 windows 和 Mac 机器都可以在几分钟内轻松变成一个 FTP 服务器。但是,重要的是不要忘记 iOS 上的 FTP 原生库不支持加密 (FTPS)
【讨论】:
对于 iOS 用户来说,通过 iTunes 发送export text from iOS to PC 是最常见的方式。使用 iTunes 将您的 iPhone 备份到您的计算机,所有数据(消息、联系人)都将包含在备份文件中,但它是一种无法读取的格式,您可以使用 Vibosoft iPhone/iPad/iPod 备份提取程序来翻录此备份文件和从 iPhone 中提取信息到计算机,您可以编辑和打印它们。
【讨论】: