Objective-C:从.rtf文件读入数组

时间:2013-09-21 23:08:39

标签: ios objective-c arrays file

我环顾四周并尝试了一些事情,但没有一个真的奏效。我要做的是创建NSStrings的NSArray,每个数组值对应于我引用的富文本文件中的一行。起初我试过这个:

NSArray* data = [[NSString stringWithContentsOfFile:@"relevantFile.rtf" encoding:4 error:nil] componentsSeparatedByCharactersInSet: [NSCharacterSet newlineCharacterSet]];

我也试过这个,因为我在iOS开发者库中找到了它:

NSArray* data = [[NSArray alloc] initWithContentsOfFile:@"relevantFile.rtf"];

但是,这些都不适合我。在代码的后面几行,为了诊断错误,我有以下代码:

for(int i = 0; i < [data count]; i++)
{
NSLog(@"%@", [data objectAtIndex: i]);
}

... NSLog正在打印“(null)”。我不完全确定我在这里做错了什么 - 我应该使用可变字符串或数组,还是有更好的方法来解决这个我不知道的问题?

1 个答案:

答案 0 :(得分:2)

你发布的第一行应该这样做。我的猜测是它找不到文件。不指定绝对路径,应用程序将查看当前目录,该目录可能不是文件所在的位置。

如果文件是编译到应用程序包中的资源,则可以使用以下代码获取其路径:

NSString* path = [[NSBundle mainBundle] pathForResource: @"relevantFile" ofType: @"rtf"]
NSArray* data = [[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil] componentsSeparatedByCharactersInSet: [NSCharacterSet newlineCharacterSet]];