在 iPhone 应用程序中加载文本数据

Posted

技术标签:

【中文标题】在 iPhone 应用程序中加载文本数据【英文标题】:Loading text data in an iPhone application 【发布时间】:2011-01-03 19:02:30 【问题描述】:

我创建了一个 iPhone 应用程序,我希望能够使用该应用程序加载一批数据,但不将所有数据存储在 .h 或 .m 文件中。

有没有办法将文本文件作为资源附加到应用程序中,然后将该文本文件加载到 iPhone 应用程序中的 NSString 中。

我希望在编译时将此文本数据文件作为 iPhone 应用程序的一部分包含在内,但要在运行时访问数据。

谢谢!

【问题讨论】:

【参考方案1】:

当然,这很容易。只需将您的 .txt 文件添加到您的项目中(将它们拖到文件树中)。要访问它们,您需要先获取路径:

NSString *path = [[NSBundle mainBundle] pathForResource: @"filename" ofType: @"txt"];

然后加载字符串:

NSError *error = nil;
NSString *fileData = [NSString stringWithContentsOfFile: path encoding: NSUTF8StringEncoding error: &error];

【讨论】:

刚刚意识到我提供的链接使用了不推荐使用的方法,哎呀!所以 +1 是最新的! 完美。这正是我想要的。谢谢!【参考方案2】:

下面是一个这样做的例子: http://iphoneincubator.com/blog/data-management/how-to-read-a-file-from-your-application-bundle

以上链接的相关代码:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"important" ofType:@"txt"];  
if (filePath)   
  NSString *myText = [NSString stringWithContentsOfFile:filePath];  
  if (myText)   
    textView.text= myText;  
    
  

【讨论】:

请务必查看我对@Ben Gottlieb 的回答的评论,我会在此处留下我的答案,因为我认为该链接仍然有用,但您需要使用@Ben Gottlieb 的 stringWithContentsOfFile 方法版本使用最新版本的 SDK。

以上是关于在 iPhone 应用程序中加载文本数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 应用程序的 UITableCell 中的背景中加载图像

iphone - 在视图控制器中加载表格视图时出现问题

iPhone:等待 webview 在自动化测试中加载

iphone中Json数据加载缓慢

启动图像未在 iPhone 应用程序中加载

在 iphone SQLite (FMDB) 中加载 10k+ 行