1

我环顾四周并尝试了一些东西,但没有一个真正奏效。我要做的是创建一个 NSString 的 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)”。我不完全确定我在这里做错了什么——我应该使用可变字符串或数组,还是有一些我不知道的更好的方法来解决这个问题?

4

1 回答 1

2

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

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

NSString* path = [[NSBundle mainBundle] pathForResource: @"relevantFile" ofType: @"rtf"]
NSArray* data = [[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil] componentsSeparatedByCharactersInSet: [NSCharacterSet newlineCharacterSet]];
于 2013-09-21T23:21:17.260 回答